Czym jest $_POST w PHP?
$_POST to predefiniowana zmienna superglobalna w PHP, używana do odbierania danych przesłanych do skryptu metodą HTTP POST. Najczęściej są to dane z formularzy HTML.
W przeciwieństwie do $_GET, dane przesłane przez POST nie są dopisywane do adresu URL. Są przekazywane w treści żądania HTTP, dlatego nie widać ich bezpośrednio w pasku adresu przeglądarki.
Przykład formularza POST
<form method="post" action="logowanie.php">
<input type="text" name="login">
<input type="password" name="haslo">
<button type="submit">Zaloguj</button>
</form>
Odczyt danych w PHP:
<?php
$login = $_POST['login'];
$haslo = $_POST['haslo'];
?>
Cechy $_POST
- jest zmienną predefiniowaną przez PHP,
- służy do odbierania danych z formularzy wysłanych metodą
POST, - dane nie są widoczne w adresie URL,
- nadaje się do formularzy logowania, rejestracji, dodawania komentarzy, wysyłania większej ilości danych,
- dane nadal trzeba walidować i zabezpieczać, np. przed SQL injection lub XSS.
Sprawdzanie, czy pole istnieje
<?php
if (isset($_POST['login'])) {
echo 'Podano login: ' . htmlspecialchars($_POST['login']);
}
?>
$_GET a $_POST
$_GET odbiera dane widoczne w URL, np. strona.php?id=3. $_POST odbiera dane przesłane w treści żądania, zwykle z formularza, bez pokazywania ich w adresie strony.
Na egzaminie warto zapamiętać, że opis „dane z formularzy nie są widoczne w URL” dotyczy właśnie $_POST, a nie $_GET.