Logo

PHP - Formularze i superglobalne tablice

Opis: Zostaną omówione formularze oraz superglobalne tablice w języku PHP, w tym mechanizmy przesyłania danych za pomocą $_GET, $_POST i $_REQUEST, wykorzystanie tablic $_SERVER, $_SESSION i $_COOKIE oraz podstawowe metody walidacji danych formularza, takie jak isset i empty, umożliwiające bezpieczne przetwarzanie danych wejściowych użytkownika w aplikacjach webowych.

PHP - Superglobalne tablice $_GET, $_POST, $_REQUEST

W języku PHP dane przesyłane z formularzy HTML lub przez adres URL są dostępne za pomocą tzw. tablic superglobalnych. Są to specjalne zmienne dostępne w każdym miejscu programu.

Najczęściej wykorzystywane to:

  • $_GET - służy do odbierania danych przesyłanych w adresie URL,

  • $_POST - służy do odbierania danych przesyłanych z formularza metodą POST,

  • $_REQUEST - zawiera dane zarówno z $_GET, jak i $_POST (oraz inne, zależnie od konfiguracji).

Każda z tych tablic działa jak tablica asocjacyjna, gdzie kluczem jest nazwa pola formularza lub parametr w URL.

1. $_GET

Dane w metodzie GET są przesyłane bezpośrednio w adresie URL w postaci parametrów. Każdy parametr ma postać:

nazwa=wartość

Parametry są oddzielone znakiem &.

Przykład

Formularz HTML (wysyłanie danych metodą GET)

<form method="GET" action="index.php">
    <input type="text" name="imie" placeholder="Podaj imię">
    <input type="submit" value="Wyślij">
</form>

Kod PHP (odbieranie danych)

<?php
if (isset($_GET['imie'])) {
    $imie = $_GET['imie'];
    echo "Witaj, " . $imie;
}
?>

Jak dane trafiają do adresu URL

Po wpisaniu np. Jan i wysłaniu formularza przeglądarka automatycznie tworzy adres:

http://localhost/index.php?imie=Jan

Elementy tego adresu:

  • index.php - plik, który obsługuje dane,

  • ? - oznacza początek parametrów,

  • imie=Jan - parametr o nazwie imie i wartości Jan.

Dla większej liczby pól:

<input type="text" name="imie">
<input type="number" name="wiek">

adres może wyglądać tak:

http://localhost/index.php?imie=Jan&wiek=20

Wyjaśnienie

Po wysłaniu formularza:

  • dane z pól HTML są zamieniane na parametry w URL,

  • PHP odczytuje je z tablicy $_GET,

  • klucz tablicy odpowiada nazwie pola formularza (name="imie"),

  • wartość to dane wpisane przez użytkownika.

Metoda GET jest prosta i wygodna, ale należy pamiętać, że dane są jawne (widoczne w pasku adresu) i mają ograniczoną długość.

2. $_POST

Dane są przesyłane z formularza HTML metodą POST i nie są widoczne w adresie URL.

Przykład:

<form method="POST">
    <input type="text" name="imie">
    <input type="submit" value="Wyślij">
</form>
<?php
if (isset($_POST['imie'])) {
    $imie = $_POST['imie'];
    echo "Witaj, " . $imie;
}
?>

Wyjaśnienie:

Dane z pola formularza o nazwie imie są przesyłane metodą POST i odczytywane z tablicy $_POST. Funkcja isset() sprawdza, czy dane zostały wysłane.

3. $_REQUEST

Tablica $_REQUEST umożliwia dostęp do danych zarówno z $_GET, jak i $_POST.

Przykład:

<?php
$imie = $_REQUEST['imie'];
echo "Witaj, " . $imie;
?>

Wyjaśnienie:

Niezależnie od sposobu przesłania danych (GET lub POST), wartość imie zostanie odczytana z tablicy $_REQUEST. Jest to rozwiązanie wygodne, ale mniej precyzyjne, ponieważ nie wskazuje jednoznacznie źródła danych.

Podsumowanie

  • $_GET - dane widoczne w URL, łatwe do testowania,

  • $_POST - dane przesyłane w formularzu, bezpieczniejsze dla użytkownika,

  • $_REQUEST - łączy różne źródła danych, ale może być mniej czytelne.

Tablice te stanowią podstawę pracy z formularzami i komunikacji między stroną a użytkownikiem w PHP.