Przetwarzanie formularzy w PHP
- Poprzednia strona Zmienne superglobalne PHP
- Następna strona Walidacja formularzy 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>
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>
"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!
- Poprzednia strona Zmienne superglobalne PHP
- Następna strona Walidacja formularzy PHP