V dnešnom článku ukážeme príklad ako si vytvoriť jednoduchý formulár v php, ktorý je ľahko zostrojiteľný z 1 alebo 2 skriptov. Celý formulár bude zostrojený s 2 súborov a to s data.php a form.php.
Náplňou článku ale nebude len naučiť vás robiť formuláre ale aj rozosielať za pomoci nich
emaily. Tak sa do toho rovno môžeme pustiť.
Formulár
Ako prvé čo budeme musieť vytvoriť sú 2 súbory a to form.php
a data.php. V prvom súbore form.php sa bude nachádzať samotný
formulár, ktorý bude odosielať dáta do súboru data.php, ktorý ich potom
spracuje a vypíše. Zdrojový kód formuláru si môžete skopírovať tu:
<form action="data.php" method="post"> <fieldset><legend>Formulár a email</legend> Meno: <input name="meno" type="text" size="32" /><br /> Priezvisko: <input name="priezvisko" type="text" size="28" /><br /> E-mail: <input name="email" type="text" size="32" /><br /> Predmet: <input name="predmet" type="text" size="30" /><br /> <br>Text:<br> <textarea name="text" rows="7" cols="30"></textarea><br> <input name="odoslat" type="submit" value="Odoslať" /> </fieldset></form> <br> <font color="red">Všetky údaje sú povinné!</font>
Všetky údaje sú povinné! Ako vidíte nieje to ťažké. Teraz máme celý formulár hotový. Rád by som ešte ale doplnil k formuláru, že je veľmi dôležité aby tam zostali parametre name="", pretože by skript data.php nevedel rozpoznať aké dáta príma a potom by vlastne nemal ani čo spracovať.
Spracovanie dát
A teraz rovno k zdrojovému kódu data.php
<?
$prijemca = "váš@email.niečo";
if ($meno && $email && $predmet && $text){
mail("$prijemca", "$predmet", "$meno $priezvisko Vám posiela tento text $text",
"from: $email");
echo "Váš <b>email bol</b> úspešne <b>odoslaný</b>!";
}
elseif (($meno && $email && $predmet && $text) == false){
echo "Váš <b>email nebol odoslaný</b>. <b>Nezadali ste všetky</b> povinné
<b>údaje</b>.";
}
?>
Ak si pozriete kód tak sami asi usúdite, že $prijemcu si musíte vyplniť sami resp. musíte nahradiť ten text váš@email.niečo emailom na ktorý chcete formulár odoslať. Za podmienkou "if" nasleduje text s úspešným odoslaním emailu. Všetky premenné $meno, $text... atď. sú vlastne mená tagov <input /> a <textarea> v súbore form.php (napr. meno v súbore form.php je to isté čo $meno v súbore data.php a preto som aj uvádzal dôležitosť parametru name="" ). Prvá podmienka udáva to, že ak sú každému tagu <input> a <textarea> priradené hodnoty, tak sa odošle email (tvar emailu je - mail(príjemca, predmet, obsah, odosielateľ)) a vypíše sa aj text s úspešnosťou odoslania (to zariadi echo "Váš <b>email bol</b> úspešne <b>odoslaný</b>!";). Druhá podmienka "elseif" uvádza to, že keď niekto nevyplní jednu alebo všetky z položiek tak potom jeho email nebude odoslaný a zobrazí sa mu text o neúspešnom odoslaní emailu. (echo "Váš <b>email nebol odoslaný</b>. <b>Nezadali ste všetky</b> povinné <b>údaje</b>.";).