PHP superglobalele $ _GET si $ _POST sunt utilizate pentru a colecta date de formular-.
PHP - Un simplu formular HTML
Exemplul de mai jos afișează un formular HTML simplu, cu două câmpuri de intrare și un buton de trimitere:
Exemplu
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
Run exemplu » Atunci când utilizatorul completează formularul de mai sus și dă clic pe butonul de trimitere, datele formular sunt trimise pentru prelucrare într - un fișier PHP numit "welcome.php" . Datele formular sunt trimise prin metoda HTTP POST.
Pentru a afișa datele prezentate ar putea pur și simplu ecou toate variabilele. "welcome.php" arată astfel:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
Rezultatul ar putea fi ceva de genul:
Welcome John
Your email address is [email protected]
Același rezultat ar putea fi, de asemenea, realizată folosind metoda HTTP GET:
Exemplu
<html>
<body>
<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
Run exemplu » și "welcome_get.php" arată astfel:
<html>
<body>
Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>
</body>
</html>
Codul de mai sus este destul de simplu. Cu toate acestea, cel mai important lucru lipseste. Ai nevoie pentru a valida datele din formular pentru a proteja script-ul de cod malitios.
Gândiți -vă de securitate atunci când procesarea formularelor PHP!
Această pagină nu conține nici o formă de validare, doar arată cum puteți trimite și prelua date din formular.
Cu toate acestea, paginile următoare va arăta cum să proceseze formulare PHP cu securitate în minte! validarea corectă a formularului de date este importantă pentru a proteja formularul de hackeri și spam!
GET vs. POST
Ambele GET și POST a crea o matrice ( de exemplu , array( key => value, key2 => value2, key3 => value3, ...) ). Această matrice deține perechi cheie / valoare, în cazul în care cheile sunt numele controalelor de formă și valorile sunt datele de intrare de la utilizator.
Ambele GET si POST sunt tratate ca _GET $ si $ _POST. Acestea sunt superglobals, ceea ce înseamnă că acestea sunt întotdeauna accesibile, indiferent de domeniul de aplicare - și le puteți accesa de la orice funcție, de clasă sau de fișiere, fără a fi nevoie să facă nimic special.
$ _GET este o serie de variabile trecut la script-ul curent prin parametrii de adrese URL.
$ _POST este o serie de variabile trecut la script-ul curent prin metoda HTTP POST.
Când se utilizează GET?
Informațiile trimise de la un formular cu metoda GET este vizibilă pentru toată lumea (toate numele și valorile variabile sunt afișate în adresa URL). GET are, de asemenea, limite privind cantitatea de informații pentru a trimite. Limitarea este de aproximativ 2000 de caractere. Cu toate acestea, pentru că variabilele sunt afișate în URL-ul, este posibil să marcați pagina. Acest lucru poate fi util în unele cazuri.
GET poate fi utilizată pentru a trimite date non-sensibile.
Note: GET nu trebuie utilizat niciodată pentru trimiterea de parole sau alte informații sensibile!
Când se utilizează POST?
Informațiile trimise de la un formular cu metoda POST este invizibil pentru alții (all names/values are embedded within the body of the HTTP request) și nu are limite privind cantitatea de informații pentru a trimite.
Mai mult decât atât POST sprijină funcționalități avansate, cum ar fi suport pentru intrare binare multi-o parte în timp ce încărcarea fișierelor pe server.
Cu toate acestea, pentru că variabilele nu sunt afișate în adresa URL, nu este posibil să marcați pagina.
Dezvoltatorii prefera POST pentru trimiterea de date din formular.
În continuare, vă permite să vedem cum putem procesa formulare PHP modul securizat!