$_POST w PHP

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Opublikowano: Zaktualizowano:

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.