Obs│uga formularzy w PHP jest nadzwyczaj prosta. Przy definicji formularza (w HTML-u) nadajemy ka┐demu elementowi nazwΩ (dziΩki parametrowi name). W PHP ≤w nazwy automatycznie staj▒ siΩ zmiennymi. Oto prosty przyk│ad:
<html>
<head>
<title>Formularze</title>
</head>
<body>
<?
function Pokaz_formularz()
{
echo "<form action='php_p12.htm'>";
echo "Haslo: <input type='text' name='haslo' size='20'>";
echo "</form>";
}
if ($haslo)
{
if ($haslo=="binboy")
echo "<h1>OK! WIT@M</h1>";
else
{
echo "<h1>ZúE HASLO!!</h1>";
Pokaz_formularz();
}
} else Pokaz_formularz();
?>
</body>
</html>
Teraz komentarz. Stworzyli╢my sobie funkcjΩ Pokaz_formularz, kt≤ra wy╢wietla bardzo prosty formularz, sk│adaj▒cy siΩ z jednego pola tekstowego. To pole nazywamy dziΩki opcji name, jako haslo. Przy wysylaniu tego formularza zostanie wywolany skrypt php_p12.htm, czyli ten sam dokument, ale... w≤wczas zostanie automatycznie stworzona zmienna $haslo i przypisana jej warto╢µ pola tekstowego.
Wykonywanie skryptu rozpoczyna siΩ od warunku, czy zmienna $haslo zawiera jak▒╢ warto╢µ. Je╢li nie, tzn. ┐e nic nie podano, albo skrypt zosta│ uruchomiony pierwszy raz. W≤wczas wywo│ana zostanie funkcja, kt≤ra wy╢wietli nasz formularz. Kiedy teraz wpiszemy do niego jaki╢ tekst i wci╢niemy ENTER, automatycznie zostanie wywo│ana ta sama strona, jednak do zmiennej $haslo przypisany bΩdzie ju┐ ten tekst. W≤wczas dojdzie do drugiego warunku. Je╢li wpisali╢my 'binboy', zostanie wy╢wietlony odpowiedni komunikat, a je╢li co╢ innego, to wy╢wietli siΩ inny komunikat i ponownie formularz.
Ten skrypt mo┐na │atwo poprawiµ zmieniaj▒c typ pola formularza z text, na password. W≤wczas nie bΩdzie widaµ wpisywanego tekstu, a jedynie gwiazdki!.
My╢lΩ, ┐e nie ma potrzeby wiΩcej na ten temat pisaµ, gdy┐ jest to nadzwyczaj proste. Ca│a filozofia sprowadza siΩ do nadawnia polom formularza odpowiednich nazw i ich interpretacji po zamianie na zmienne.
W PHP mamy mo┐liwo╢µ automatycznego wysy│ania e-maili. S│u┐y do tego funkcja mail. Oto przyk│ad jej u┐ycia:
mail("adres@e-mail", "Temat wiadomo╢ci", "Tre╢µ listu.\nDruga linijka tre╢ci.");
Oczywi╢cie u┐ycie funkcji mo┐e byµ bardziej skomplikowane, np:
mail("adres@email","Temat","Tre╢µ","From: Nadawca <e-mail nadawcy>\nReply-To: e-mail zwrotny");
Przyk│ad automatu do wysy│ania poczty:
<html>
<head>
<title>E-mailer v1.0</title>
</head>
<body>
<?
if (($tresc!="") && ($email!=""))
{
mail("$email", "Test", $tresc);
echo "List zosta│ wys│any.";
} else
{
echo '<FORM ACTION="php_p16.htm" METHOD=POST>';
echo '<INPUT TYPE=TEXT NAME=email><BR>';
echo '<TEXTAREA NAME=tresc></TEXTAREA><BR>';
echo '<INPUT TYPE=SUBMIT>';
echo '</FORM>';
}
?>
</body>
</html>