Formularze - Poczta

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>