|
Operatorii PHP si preluarea informatiilor dintr-un formular HTML
In prima partea a acestui curs a fost prezentata baza limbajului server-based PHP: mediul in care este folosit, variabile PHP si lucrul cu operatorii de string-uri sau operatorii numerici.
Odata acoperite aceste notiuni introductive, este momentul sa ne concentram atentia asupra a ceea ce poate sa faca PHP mai interesant: receptionarea automata a mesajelor introduse de utilizatori intr-un formular web si conversia lor in variabile PHP.
Formularele
Formularele au fost intotdeauna una dintre cele mai facile metode de a oferi o interactivitate in mediul web. Sondarea preferintelor clientilor asupra unor produse poate fi facuta foarte usor printr-un formular web, vizitatorii pot posta comentarii prin intermediul formularelor, etc. Ceea ce face PHP este sa simplifice modul de procesare a acestor informatii primite de la formularul web, dupa cum exemplul de mai jos o demonstreaza. Este vorba de doua scripturi, primul continand codul HTML pentru generarea formularului(form.htm), in timp ce celalalt pur si simplu se ocupa de logica procesarii formularului(message.php):
<html>
<head></head>
<body>
<form action="message.php" method="post">
Mesajul tau: <input type="text" name="msg" size="30">
<input type="submit" value="Send">
</form>
</body>
</html>
Noutatea codului de mai sus consta in utilizarea tag-ului <form>; dupa cum probabil stiai, atributul “action” specifica numele unde se gaseste scriptul de procesare al formularului(message.php in cazul nostru), iar “method” indica modalitatea in care informatia va fi transmisa.
Functionarea
Scriptul PHP care preia informatiile din formular este prezentat mai jos:
<html>
<head></head>
<body>
<?php
$input = $_POST['msg'];
echo "Mesajul tau a fost: <i>$input</i>";
?>
</body>
</html>
Atunci cand introduci un text in form.htm (spre exemplu “Bla bla”), si apesi butonul “submit”, in procesorul de formular (message.php) este citit acest text si afisat ca atare: “Mesajul tau a fost: Bla bla”. Asadar, cu fiecare trimitere a datelor dintr-un formular HTML intr-un script PHP, toate perechile variabile - valori devin accesibile din interiorul scriptului PHP si pot fi utilizate printr-o variabila speciala ce le contine: $_POST. Deci, accesarea valorii unei variabile se face prin numele acesteia (atributul “name”) in interiorul containerului $_POST.
In mod evident, PHP ofera suport si pentru procesarea datelor prin metoda GET, prin simpla modificarea a atributului formularului din method = “POST” in method = “GET”, si manipularea informatiilor in script prin variabila container $_GET. Dupa cum probabil ti-ai dat seama, $_POST si $_GET sunt doua variabile speciale de tip array.
Manipularea datelor
Scripturile pe care le-am prezentat ca exemple pana la acest punct sunt foarte simple. Tot ceea ce fac este ori sa adune numere, concateneze siruri de caractere sau sa afiseze datele introduse intr-un formular. Trebuie sa recunosti, nimic solicitant ….
Pentru a adauga putina savoare scripturilor, trebuie sa faci un pas inainte si sa-ti insusesti anumite notiuni cum ar fi aceea de “executie conditionata” – o secventa de cod ce poate fi executata doar daca o anumita conditie este indeplinita.
Fiindca cea mai simpla comparatie intre doua variabile poate insemna o conditionare a unei executii ulterioare, trebuie mai intai sa afli cum poti determina daca variabilele sunt diferite sau identice intre ele.
PHP are capacitatea de a utiliza asa numitii „operatori de comparatie” intocmai pentru a compara doua valori:
<?php
$mean = 9;
$median = 10;
$mode = 9;
stanga este mai mica
$result = ($mean < $median);
print "rezultatul este $result<br />";
stanga este mai mare
$result = ($mean > $median);
print "rezultatul este $result<br />";
stanga este mai mica
$result = ($median <= $mode);
print "resultatul este $result<br />";
stanga este mai mare
$result = ($median >= $mode);
print "rezultatul este $result<br />";
stanga este egala cu
$result = ($mean == $mode);
print "rezultatul este $result<br />";
stanga este diferita
$result = ($mean != $mode);
print "rezultatul este $result<br />";
stanga este diferita
$result = ($mean <> $mode);
print "rezultatul este $result";
?>
|