PHP $_POST
$_POST este o variabilă superglobală PHP folosită pentru a colecta datele unui formular după trimiterea unui formular HTML cu method="post".
$_POST este folosită pe scară largă și pentru a transmite variabile.
PHP $_POST în prelucrarea formularelor
Pagina din exemplul de mai jos conține un formular cu un câmp de text și un buton de trimitere. Când apeși „Submit”, ce a scris utilizatorul este trimis către fișierul indicat de atributul action al formularului. Aici acesta este chiar pagina însăși, așa că același script afișează formularul și îl și prelucrează. După trimitere, valoarea scrisă te așteaptă în $_POST:
Colectarea datelor unui formular cu $_POST
Citește cu $_POST ce a scris utilizatorul într-un câmp de intrare:
Ieșire: script PHP
<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Nume: <input type="text" name="name">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST['name'];
if (empty($name)) {
echo "Numele este gol";
} else {
echo "Salut " . $name;
}
}
?>
</body>
</html>
Explicarea exemplului
Formularul HTML de mai sus trimite datele către pagina curentă folosind metoda POST. Asta înseamnă că datele formularului sunt disponibile în tabloul superglobal $_POST.
Iată cum funcționează:
- Atributul
actioneste setat la$_SERVER['PHP_SELF'], așa că datele formularului se întorc la pagina curentă - Atributul
method="post"îi spune browserului să trimită datele formularului prin HTTP POST - Intrarea
$_POST['name']conține ce s-a scris în câmpul cuname="name"
Notă: Folosește isset() ca să verifici dacă variabila $_POST este setată înainte să încerci să accesezi valoarea ei. Astfel eviți erorile la prima încărcare a paginii (înainte de trimiterea formularului). Exemplul obține aceeași protecție verificând mai întâi $_SERVER["REQUEST_METHOD"].
$_POST în legături
$_POST nu poate fi folosită pentru a trimite date prin legături. Pentru a trimite date prin legături, folosește în schimb $_GET.
Deoarece datele POST nu sunt vizibile în URL, această metodă este mai potrivită pentru trimiterea datelor sensibile, cum ar fi parolele.