Sunteți pe pagina 1din 6

CURS 6 INFORMATICA

Utilizare formulare HTML cu PHP, $_GET si $_POST

Invatati sa trimiteti date prin formulare HTML Invatati sa preluati date trimise prin GET si POST 1. Proiectarea unui formular Principalele sarcini n proiectarea unui formular HTML le constituie alegerea controalelor HTML care vor fi incluse n formular, selectarea amplasamentului controalelor si alegerea numelui acestora. Studiati lectia HTML despre Formulare, aceasta explica modul de realizare a fiecarui obiect dintr-un formular HTML si va va ajuta sa invatati rolul acestor elemente HTMLL. 2. Crearea unui formular Un formular HTML trebuie sa contina un buton de expediere, submit, pe care utilizatorul executa clic pentru a trimite datele din formular la scriptul PHP. Formularele se creaza folosind etichete specifice incadrate in tag-ul <form> </form> ca in exemplul de mai jos: <form action="script.php" method="post"> Nume:<input type="text" name="nume" /> <br /><input type="submit" name="submit" value="Trmite formular" /> </form> In browser se va vedea: Top of Form Nume:
Trmite formular

Bottom of Form Fiecare element al formularului trebuie introdus intre etichetele <form> si </form>. Atributul "action" indica fisierul cu scriptul care va primi datele de la formular si reprezinta una dintre cele mai importante precizari. Fiecare element, camp dintr-un formular trebuie sa aibe un nume distinct, dat prin atributul

"name"; acest nume este folosit de scriptul PHP la care sunt trimise datele, astfel, scriptul PHP recunoaste datele din campul respectiv folosind numele acestuia. 3. Utilizarea metodelor GET si POST Atributul "method" poate avea doua valori : GET si POST. Diferenta intre metodele GET si POST consta in modul in care informatia din formular este transmisa scriptului care o prelucreaza. - Metoda GET trimite toate informatiile adunate ca parte a adresei URL; aceste informatii sunt vizibile pentru utilizator. - Metoda POST transmite informatia intr-o maniera invizibila pentru utilizator si poate transmite o cantitate mai mare de date decat GET. Folosind exemplul de formular de mai sus, metoda GET va transmite serverului o adresa URL ca cea de mai jos: http://www.marplo.net/script.php?nume=Popescu iar in cazul folosirii metodei POST, in URL va aparea doar: http://www.marplo.net/script.php Metoda GET permite transmiterea unui volum limitat de informatii catre server; de asemenea nu este recomandata folosirea acestei metode in cazul in care dorim sa transmitem date personale(de exemplu parolele introduse intr-un formular pot fi vizualizate de oricine in browserul de Web). 4. Receptionarea datelor de la un formular HTML In general datele din formular sunt preluate de scriptul PHP prin urmatoarea formula: $_POST['nume'] - daca este folosit method="post" $_GET['nume'] - daca este folosit method="get" - unde "nume este valoarea atributului name al elementului din formularul HTML. Sa luam un exemplu practic de formular HTML care trimite date (prin method="post") la un script PHP unde acestea vor putea fi vizualizate. Salvam scriptul de mai jos intr-un fisier pe care-l numim "test-form.php" <?php $nume = $_POST['nume']; $email = $_POST['email']; $parola = $_POST['parola']; echo "Nume = $nume"; echo "<br />E-mail = $email"; echo "<br />Parola = $parola"; ?>
2

Scriem urmatorul cod HTML intr-un alt fisier "form.html", pe care-l salvam in acelasi director cu scriptul PHP de mai sus. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ro" lang="ro"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <title> Test-Form </title> </head> <body> <form action="test-form.php" method="POST"> Nume:<input type="text" name="nume" /> <br />Email:<input type="text" name="email" /> <br />Parola:<input type="password" name="parola" /> <br /><input type="submit" name="submit" value="Trmite datele" /> </form> </body> </html> In browser va aparea: Top of Form

Nume: Email: Parola:


Trmite datele

Bottom of Form Completam datele din formular, de exemplu: la Nume : Popescu, la Email : plomar@uv.ro si Parola : parola_mea Dupa ce am competat datele, apasam clic pe butonul "Trimite datele", acestea vor fi trimise la scriptul PHP "test-form.php", care le va prelucra si va afisa urmatorul rezultat: Nume = Popescu E-mail = plomar@uv.ro Parola = parola_mea Sa intelegem exemplu de mai sus. Folosind formularul de mai sus, atributul NAME din fiecare eticheta INPUT atribuie fiecarei casete cu text un nume, astfel scriptul PHP va putea recunoaste datele scrise in casete. In scriptul "test-form".php" vom accesa variabilele:
3

$nume va primi informatia introdusa in campul Nume $email va primi informatia introdusa in campul Email $parola va primi informatia introdusa in campul Parola Deoarece cunoastem metoda prin care trimitem datele catre scriptul PHP, "POST", am folosit variabila PHP globala _POST pentru a prelua datele din formular: $_POST['nume'] $_POST['email'] $_POST['parola'] Constructia echo trimite datele de iesire care vor fi afisate de browser Variabile PHP globale: _GET si _POST reprezinta de fapt variabile de tip array, fiecare element se poate accesa prin cheia sa; in cazul nostru cheia fiecarui element este data de atributul : NAME al casetelor din formular 5. Trimiterea de date unui script prin adresa URL In afara de a expedia unui script datele printr-un formular, puteti expedia date cu ajutorul adresei URL a paginii. Pentru aceasta, atasati la sfarsitul adresei URL un semn al ntrebarii (?) si apoi includeti o serie de perechi "nume-valoare" (separate prin &), ca in exemplu urmator: http://www.marplo.net/fisier.php?nume1=valoare1&nume2=valoare2 Exemplul include numai doua perechi "nume-valoare"; cu toate acestea, puteti include oricte asemenea perechi doriti (separate prin caracterul &), in functie de limita impusa de browser. Pentru a prelua si folosi datele dintr-o astfel de adresa URL, folositi in interiorul scriptului PHP expresia "$_GET['nume'], ca in exemplu urmator" $var1 = $_GET['nume1'] $var2 = $_GET['nume2'] Unde "nume1" si "nume2" sunt numele variabilelor din adresa URL, iar "$var1" si "$var2" sunt variabilele care vor fi folosite in scriptul PHP (din "fisier.php") si a caror valori vor fi "valoare1" respectiv "valoare2" continute in adresa URL.

Daca doriti sa trimiteti unui script, prin intermediul adresei sale URL, caractere speciale precum un semn al intrebarii, un semn egal sau un ampersand, se poate crea confuzie. Pentru a functiona corect, un sir trebuie sa fie codificat URL. Pentru a codifica URL un sir, caracterele speciale se nlocuiesc cu echivalentele lor hexazecimale, precedate de un simbol procent (%). Pentru alte detalii, consultati lectia despre Utilizarea caracterelor speciale, subtitlul 4 ( Conversia adreselor URL).
4

De exemplu, forma codificata URL a sirului "la multi ani!" este %22la multi ani%21%22. Adresa URL rezultanta se numeste "sir de interogare" si nu poate contine spatii. Daca doriti sa trimiteti un spatiu ca parte a unui sir de interogare, trimiteti n locul spatiului un semn plus (+). Iata un exemplu de sir de interogare care codifica numele autorului acestui site: http://www.marplo.net/script.php?autor=Mar+Plo Unele dintre cele mai comune caractere speciale si echivalentele lor codificate URL sunt prezentate n tabelul de mai jos: Caracter special . > ^ ~ + , / : ; Echivalentul codificat URL *%2e %3e %5e %7e %2b %2c %2f %3a %3b %3c = > [ \ ] _ { | } tab %3d %3e %5b %5c %5d %5f %7b %7c %7dc %09
5

spatiu ! # $ % & ` ( ) @ `

%20 %21 %22 %23 %24 %25 %26 %27 %28 %29 %40 %60

S-ar putea să vă placă și