Przetwarzanie formularzy w PHP

Układowe zmienne globalne $_GET i $_POST w PHP są używane do zbierania danych formularza (form-data).

PHP - prosty formularz HTML

Poniższy przykład pokazuje prosty formularz HTML, który zawiera dwa pola wejściowe i przycisk wysyłania:

Przykład

<html>
<body>
<form action="welcome.php" method="post">
Imię: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>

Uruchomienie przykładu

Kiedy użytkownik wypełnia ten formularz i kliknie przycisk "Wyślij", dane formularza są wysyłane do PHP pliku o nazwie "welcome.php" do przetworzenia. Dane formularza są wysyłane metodą HTTP POST.

Aby wyświetlić przysłane dane, możesz po prostu wyświetlić (echo) wszystkie zmienne. Plik "welcome.php" wygląda tak:

<html>
<body>
Witaj <?php echo $_POST["name"]; ?><br>
Twój adres e-mail to: <?php echo $_POST["email"]; ?>
</body>
</html>

Wyjście:

Witaj Bill
Twój adres e-mail to Bill.Gates@example.com

Możesz uzyskać ten sam wynik, używając metody HTTP GET:

Przykład

<html>
<body>
<form action="welcome_get.php" method="get">
Imię: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>

Uruchomienie przykładu

"welcome_get.php" wygląda tak:

<html>
<body>
Witaj <?php echo $_GET["name"]; ?><br>
Twój adres e-mail to: <?php echo $_GET["email"]; ?>
</body>
</html>

Powyższy kod jest prosty. Jednak najważniejsze elementy zostały pominięte. Musisz walidować dane formularza, aby zapobiec lukom w skrypcie.

Uwaga:Zwracaj uwagę na bezpieczeństwo podczas przetwarzania formularzy PHP!

Ta strona nie zawiera żadnych programów walidacji formularzy, pokazuje tylko, jak wysyłać i odbierać dane formularza.

Jednak w późniejszych rozdziałach wyjaśnimy, jak zwiększyć bezpieczeństwo formularzy PHP! Właściwa weryfikacja formularzy jest niezwykle ważna dla obrony przed atakami hakerskimi i spamem!

GET kontra POST

GET i POST tworzą tablice (np., array( key => value, key2 => value2, key3 => value3, ...)). Ta tablica zawiera pary klucz/wartość, gdzie klucz to nazwa elementu formularza, a wartość to dane wejściowe użytkownika.

GET i POST są traktowane jako $_GET i $_POST. Są to zmienne superglobalne, co oznacza, że dostęp do nich nie wymaga rozważania zasięgu - nie wymaga żadnego specjalnego kodu, możesz do nich uzyskać dostęp z każdej funkcji, klasy lub pliku.

$_GET to tablica zmiennych przekazywanych do bieżącego skryptu przez parametry URL.

$_POST to tablica zmiennych przekazywanych do bieżącego skryptu przez HTTP POST.

Kiedy używać GET?

Informacje wysyłane za pomocą metody GETjest widoczna dla każdegoWszystkie nazwy zmiennych i wartości są wyświetlane w URL. GET ma ograniczenia dotyczące ilości wysyłanej informacji. Ograniczenia wynoszą około 2000 znaków. Jednakże, ponieważ zmienne są wyświetlane w URL, dodawanie strony do zakładek jest łatwiejsze.

GET można używać do wysyłania niesENSYTYWNYCH danych.

Komentarz:Nigdy nie używaj GET do wysyłania haseł lub innych wrażliwych informacji!

Kiedy używać POST?

Informacje wysyłane za pomocą metody POSTjest niewidoczna dla innychWszystkie nazwy/wartości są wstawiane do ciała żądania HTTP, a także ilość wysyłanej informacjiBez ograniczeń.

POST obsługuje zaawansowane funkcje, takie jak multi-part binarne wejście podczas przesyłania plików do serwera.

Jednakże, ponieważ zmienne nie są wyświetlane w URL, nie można dodać strony do zakładek.

Wskazówka:Programiści częściej preferują POST do wysyłania danych formularza.

Pozwólcie, że zobaczymy, jak bezpiecznie przetwarzać formularze PHP!