PHP si MySql (Programator Web 2)

DOCUMENTATIE CURS

Diferentele dintre GET si POST

1. Folosind GET, informatia transmisa de la utilizator este incarcata in url, pe cand cea de la POST nu este in url, ea este transmisa prin conexiunea curenta http. Astfel, un url la care a fost transmisa o cerere POST nu se poate salva pentru o accesare ulterioara.

2. Folosind GET, lungimea datelor primite de la utilizator este limitata la aproximativ 255 de caractere, lungimea maxima a unui URL. Astfel, formulare care accepta mesaje, sau incarcare de fisiere, sau informatie mai lunga, NU se pot transmite prin GET.

3. Datorita faptului ca informatiile de la utilizator se transmit prin url in cazul metodei GET, nu putem transmite prin GET informatiile dintr-un formular care are parola, pentru ca, parola va fi vizibila in URL. Decat daca codam parola respectiva.
Cand folosim GET si cand POST ?
In general sunt situatii clare cand se recomanda folosirea metodei get sau post:

1. Daca avem un formular care modifica informatii (insert sau update in baza de date), in general folosim POST. Pentru ca pagina respectiva, nu mai trebuie sa fie accesata ulterior prin facilitatea History a browser-ului sau prin bookmarks. O practica buna este de fapt dupa ce facem insert-ul sau update-ul in baza de date, sa redirectam catre alta pagina, astfel incat utilizatorul sa nu poata sa reincarce pagina respectiva. Acest lucru va deveni clar mai tarziu in curs, in exemplele practice

2. Daca avem o extragere de informatii (in general select dintr-o baza de date) cum ar fi un formular de cautare, in general se foloseste GET. Pentru ca pagina respectiva sa poate fi salvata de utilizator, sau accesata prin butoanele Back sau Forward ale browser-ului (facilitatea History). In general la formularele de search nu se introduc multe informatii, deci se respecta si regula cu limitarea informatiei transmise.

3. Daca avem upload (incarcare) de fisiere de la utilizator, se foloseste doar POST.

4. Pentru formular de login in general se foloseste POST, pentru ca se transmite o parola, si apoi nu vrem sa acceseze acest link prin History sau Bookmarks.

Nota
De multe ori veti realiza linkuri in site ce transmit anumiti parametri prin GET. De exemplu: produse.php?produsId=5. Asta inseamna ca se foloseste metoda GET, dar nu prin formular ci direct prin link
© 2006-2012 Crystal Mind Academy. All rights reserved