PHP ir SQL > PHP ir SQL - Klausimai ir pagalba

[Atsakyta] Emailo siuntimo forma, reikalinga php pagalba

(1/1)

eimantasbe:
Sveiki.

Jau senokai mokėjau beveik viską HTML-CSS (išskyrus dizainus iš .psd sukoduot į normalius failus).

Vakar perskaičiau viską apie php, ką radau šiam manualų puslapyje, nusprendžiau mokintis php.

Nusprendžiau iš pradžių pradėti nuo e-mail siuntimo formos, paskui ją daryti sudėtingesne, man svarbiausia suprasti kaip tas padaroma, mintinai žinau, jog neiškalsiu ir programuotojas iš manęs per pora mėn toli gražu nebus, todėl kreipiuos į jus patarimų, ir tikiuos ateity galėsit man padėt daugiau.



Tai va, turiu e-mailo siuntimo skriptą :

index.html (forma)


--- Kodas: ---<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Email Form </title>
</head>
<body>

<form action="siusti.php" method="post">
<textarea name="uzrasai" rows="4" cols="40"></textarea>
<br />
<br />
<textarea name="uzrasai2" rows="4" cols="40"></textarea>
<br />
<br />
<input type="submit" value="Siusti" />
<br />
</form>

</body>
</html>


--- Baigti kodą ---


siusti.php (siuntimo skriptas)


--- Kodas: ---
<?
$header = "content-type: text/html; charset=\utf8\"\r\n";
$header .= "From: Puslapis <puslapis@puslapis.lt>\r\n";
$header .= "Reply-to: eimantasbe@beyond.lt\r\n";

$uzrasai = $_POST['uzrasai'];
$uzrasai2 = $_POST['uzrasai2'];
$subject = Tema;
$message = "Zinute:\n\n$uzrasai\n\n$uzrasai2 ";


mail('eimantasbe@beyond.lt',$subject,$message,$header);
?>

--- Baigti kodą ---


Kai surašau žinutėje ką nors lietuviškais skaitmenimis, emaile jų neatvaizduoja, mėginau su header funkcija, su meta tagais, visaip, nepasisekė utf8 nustatyt niekaip  :-\

Dar norėčiau, kad patartumėt, ko turėčiau griebtis, norėdamas įdėti į formą apsaugas (nuo ne visų užpildytų laukų, nuo klaidingo el. pašto).

Ir dar domintų kaip galėčiau įdėt paveiksliukų, kuriuos atvaizduos random būdu, ir reiks suvesti kodą, kuris bus priskirtas tik tam tikram paveiksliukui, toks kaip vaizdinis patvirtinimas nuo botų būtų.



Būčiau labai dėkingas, jeigu padėtumėt, man įgyvendint šituos klausimus, po truputį mokinsiuos, googlinsiu.

Būtų šaunu, jei ir patarimų numestumėt, ko imtis pirmiausia, ko paskiausia, gal lengviau pagelbėtumėt išmokt šią velnio kalbą  ::)

eimantasbe:
Vis dar reiktų pagalbos

vitalikaz:

--- Citata iš: eimantasbe  2009-07-25 19:43:50 pm ---Kai surašau žinutėje ką nors lietuviškais skaitmenimis, emaile jų neatvaizduoja, mėginau su header funkcija, su meta tagais, visaip, nepasisekė utf8 nustatyt niekaip  :-

--- Baigti citatą ---


Pabandyk savo siuntimo skriptą pakeisti į:

--- Kodas: ---<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Siuntimas</title>
</head>
<body>
<?

$header = "content-type: text/html; charset=utf8\r\n";
$header .= "From: Puslapis <puslapis@puslapis.lt>\r\n";
$header .= "Reply-to: eimantasbe@beyond.ltrn";

$uzrasai = $_POST['uzrasai'];
$uzrasai2 = $_POST['uzrasai2'];
$subject = "Tema";
$message = "Zinute:nn$uzrasainn$uzrasai2 ";
$to = "eimantasbe@beyond.lt";

$sentOk = mail($to,$subject,$message,$header);
if ($sentOk)
    echo "<b>Sekmingai issiusta i $to .</b>";
else
    echo "<b style="color:red">Klaida siunciant laiska.</b>";
echo "<hr /><br /><a href="index.html">Grizti</a>
?>

</body>
</html>

--- Baigti kodą ---
arba kazka panasaus, gal pades, bet nepazadu :)
Toliau...



--- Citata ---Dar norėčiau, kad patartumėt, ko turėčiau griebtis, norėdamas įdėti į formą apsaugas (nuo ne visų užpildytų laukų, nuo klaidingo el. pašto).

--- Baigti citatą ---

Taip, tau reikes naudotis Javascript'u. Esi susidures? Pasiskaityk pamoku JS. O siaip tai bus kazkas panasaus (pakeisti tavo index.html):

--- Kodas: ---<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Email Form </title>
<script language="JavaScript">
function validForm(form) {
    var uz = form.uzrasai.value;
    var uz2 = form.uzrasai2.value;
    if (trim(uz) == '' || trim(uz2) == '') { // jeigu tuscia
       alert('Uzpildykite visus laukus!');
       return false; // graziname false - forma nebus submitinama
    }
    else
       return true; // jeigu viskas gerai.
   
}
</script>
</head>
<body>

<form action="siusti.php" method="post" onsubmit="return validForm(this);">
<textarea name="uzrasai" id="uzrasai" rows="4" cols="40"></textarea>
<br />
<br />
<textarea name="uzrasai2" id="uzrasai2" rows="4" cols="40"></textarea>
<br />
<br />
<input type="submit" value="Siusti" />
<br />
</form>

</body>
</html>

--- Baigti kodą ---

Šita apsauga apsaugos tavo formą. Tačiau vis dar lieka galimybė nusiųsti skriptui ir uždraustas reikšmes (šiuo atvėju - tuščias). Žmogus laisvai gali nukopijuoti šią formą pas save į kompą, paredaguot ją taip, kad nebūtų tų tikrinimų ir submitint viską į tavo siuntimo skriptą, tada validacijos nebelieka :) sprendimas būtų - pamodifikuot tavo siuntimo skriptą. Pridėti jame tokius dalykus kaip:

--- Kodas: ---if (isset($_POST['uzrasai']) && isset($_POST['uzrasai2']) ) {
      // vyksta siuntimas
}
else
    echo "F*ck u, }{aCK3rZ.";

--- Baigti kodą ---
arba tiesiog tikrint ar duomenys atėjo būtent iš tavo formų


--- Citata ---Ir dar domintų kaip galėčiau įdėt paveiksliukų, kuriuos atvaizduos random būdu, ir reiks suvesti kodą, kuris bus priskirtas tik tam tikram paveiksliukui, toks kaip vaizdinis patvirtinimas nuo botų būtų.

--- Baigti citatą ---

Piešimui PHP yra naudojamas GD libas. Su juo patogu piešt, redaguot piešinukus. Paieškok PHP GD pamokų. O tiem skaičiukams ir pan. yra jau sukurta daug skriptų ir klasių, kurie tą libą ir naudoja :)

Jei ką neaiškiai paaiškinau - klausk :)

Navigacija

[0] Žinučių sąrašas

Eiti į pilną versiją