Metody GET i POST w PHP

Metody GET i POST w PHP służą do przesyłania danych z formularza do serwera. Używając $_GET i $_POST, możesz odbierać informacje w swoim skrypcie. GET umieszcza dane w adresie URL, natomiast POST wysyła je w ukrytej części żądania HTTP.


Różnice między GET a POST

  • GET
    • Dane są dołączane do URL-a w formacie ?klucz=wartosc&klucz2=... .
    • Limitowana wielkość (zależnie od przeglądarki/serwera), ale wystarczająca dla wielu scenariuszy.
    • Nadaje się do prostych zapytań, np. wyszukiwarka, paginacja.
  • POST
    • Dane przesyłane w treści żądania HTTP, nie są widoczne w URL-u.
    • Brak tak restrykcyjnego limitu długości, dobry do formularzy z wieloma polami lub plikami.
    • Bezpieczniejszy pod kątem prywatności (choć nie szyfruje danych – w tym celu używaj HTTPS).
  • W PHP odbierasz dane przez $_GET['klucz'] lub $_POST['klucz'].
Przykład
<h3>Formularz z metodą GET</h3>
<form action="" method="get">
  <label>Imię: <input type="text" name="imie_get"></label>
  <button type="submit">Wyślij</button>
</form>

<h3>Formularz z metodą POST</h3>
<form action="" method="post">
  <label>Imię: <input type="text" name="imie_post"></label>
  <button type="submit">Wyślij</button>
</form>

<?php
// Obsługa GET
if (isset($_GET['imie_get'])) {
  echo "<p>Odebrano z GET: " . $_GET['imie_get'] . "</p>";
}

// Obsługa POST
if (isset($_POST['imie_post'])) {
  echo "<p>Odebrano z POST: " . $_POST['imie_post'] . "</p>";
}
?>
Zwrócona zawartość
[Formularz z metodą GET i formularz z metodą POST]
Po wysłaniu GET: Odebrano z GET: ...
Po wysłaniu POST: Odebrano z POST: ...

Przykładowe zastosowania GET i POST

  • GET:
    • Wyszukiwarki, paginacja, odnośniki kopiowane jako URL (np. ?page=2).
  • POST:
    • Logowanie użytkownika, przesyłanie dłuższych tekstów, upload plików.
  • Mieszane formy:
    • Parametry do paginacji (GET) + dane formularza (POST), chociaż zwykle wybierasz jedną metodę dla konkretnego formularza.

Podsumowanie

  • GET przesyła dane w URL, co jest wygodne do linkowania wyników, ale ma limit rozmiaru.
  • POST nie wyświetla danych w adresie i można przesłać większe ilości informacji (teksty, pliki).
  • W PHP odbierasz te dane przez $_GET i $_POST, a do formularza ustawiasz method="get" lub method="post".
  • Używaj POST do wrażliwych danych (wraz z HTTPS), aby nie ujawniać ich w URL.