Formularz rejestracyjny PHP przy użyciu metod GET, POST z przykładem
⚡ Inteligentne podsumowanie
Obsługa formularzy w PHP przechwytuje dane wprowadzane przez użytkownika z formularzy HTML i przetwarza je na serwerze za pomocą superglobalnych zmiennych $_POST i $_GET. Ten przewodnik przedstawia sposób tworzenia formularza rejestracyjnego, wyjaśnia metody POST i GET, porównuje je oraz pokazuje, jak przetwarzać pola, pola wyboru i dane wyszukiwania.

Co to jest forma?
Logując się na stronie internetowej lub do skrzynki pocztowej, wchodzisz w interakcję z formularzem.
Formularze służą do uzyskiwania danych wejściowych od użytkownika i przesyłania ich do serwera WWW w celu przetworzenia.
Poniższy diagram ilustruje proces obsługi formularza.
Formularz to znacznik HTML zawierający elementy graficznego interfejsu użytkownika, takie jak pola wprowadzania danych, pola wyboru, przyciski radiowe i inne.
Formularz jest definiowany za pomocą … Tagi i elementy GUI są definiowane za pomocą elementów formularza, takich jak input.
Kiedy i dlaczego korzystamy z formularzy?
- Formularze są przydatne podczas rozwojuping elastyczne i dynamiczne aplikacje, które akceptują dane wejściowe użytkownika.
- Formularze mogą być używane do edycji już istniejących danych w bazie danych.
Utwórz formularz
Do utworzenia formularza użyjemy tagów HTML. Poniżej znajduje się minimalna lista rzeczy potrzebnych do utworzenia formularza.
- Otwieranie i zamykanie tagów formularzy …
- Typ przesyłania formularza POST lub GET
- Uległość URL który będzie przetwarzał przesłane dane
- Pola wprowadzania danych, takie jak pola wprowadzania danych, obszary tekstowe, przyciski, pola wyboru i podobne.
Poniższy kod tworzy prosty formularz rejestracyjny.
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <h2>Registration Form</h2> <form action="registration_form.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> </body> </html>
Po wyświetleniu powyższego kodu w przeglądarce internetowej pojawi się poniższy formularz.
TUTAJ,
- … są tagami otwierającymi i zamykającymi formularz
- action=”registration_form.php” method=”POST” określa miejsce docelowe URL i rodzaj przesłania.
- Imię/Nazwisko: są to etykiety pól wprowadzania danych
- są to znaczniki pól wprowadzania danych
- jest nowym znacznikiem linii
- to ukryta wartość, która służy do sprawdzenia, czy formularz został przesłany, czy nie
- jest przyciskiem, którego kliknięcie powoduje przesłanie formularza do serwera w celu przetworzenia
Przesłanie danych formularza na serwer
Atrybut akcji formularza określa przesłanie URL który przetwarza dane. Atrybut metody określa typ przesłania.
Metoda PHP POST
- Jest to wbudowana tablica superglobalna PHP, która służy do pobierania wartości przesyłanych metodą HTTP POST.
- Dostęp do zmiennej tablicowej można uzyskać z dowolnego skryptu w programie; ma zasięg globalny.
- Ta metoda jest idealna, gdy nie chcesz wyświetlać wartości z formularza w URL.
- Dobrym przykładem wykorzystania metody POST jest przesyłanie danych logowania na serwer.
Ma następującą składnię.
<?php
$_POST['variable_name'];
?>
TUTAJ,
- „$_POST[…]” to Tablica PHP
- „'variable_name'” to nazwa pola formularza.
Metoda PHP GET
- Jest to wbudowana tablica superglobalna PHP, która służy do pobierania wartości przesyłanych metodą HTTP GET.
- Dostęp do zmiennej tablicowej można uzyskać z dowolnego skryptu w programie; ma zasięg globalny.
- Ta metoda wyświetla wartości formularza w URL.
- Jest to rozwiązanie idealne dla formularzy wyszukiwarek, gdyż umożliwia użytkownikom dodawanie zakładek do wyników.
Ma następującą składnię.
<?php
$_GET['variable_name'];
?>
TUTAJ,
- „$_GET[…]” to tablica PHP
- „'nazwa_zmiennej'” to URL nazwa zmiennej.
Metody GET i POST
| POST | GET |
|---|---|
| Wartości niewidoczne w URL | Wartości widoczne w URL |
| Nie ma ograniczeń co do długości wartości, ponieważ są one przesyłane za pośrednictwem treści żądania HTTP | Ma ograniczenie co do długości wartości, zwykle 255 znaków. Dzieje się tak, ponieważ wartości są wyświetlane w URL. Należy pamiętać, że górny limit znaków zależy od przeglądarki. |
| Ma niższą wydajność w porównaniu z metodą GET ze względu na czas spędzony na hermetyzacji wartości POST w treści HTTP | Ma wyższą wydajność w porównaniu do metody POST ze względu na prostotę dodawania wartości w URL. |
| Obsługuje wiele różnych typów danych, takich jak ciągi, liczby, dane binarne i inne. | Obsługuje tylko typy danych typu string, ponieważ wartości są wyświetlane w URL |
| Wyników nie można dodać do zakładek | Wyniki można dodać do zakładek ze względu na widoczność wartości w URL |
Poniższy diagram przedstawia różnicę pomiędzy GET i POST.
Przetwarzanie danych z formularza rejestracyjnego
Formularz rejestracyjny przesyła do siebie dane określone w atrybucie action formularza.
Po przesłaniu formularza wartości są umieszczane w superglobalnej tablicy $_POST.
Użyjemy funkcji isset PHP, aby sprawdzić, czy wartości formularza zostały wypełnione w tablicy $_POST i przetworzyć dane.
Zmodyfikujemy formularz rejestracyjny, dodając kod PHP przetwarzający dane. Poniżej znajduje się zmodyfikowany kod.
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_POST['form_submitted'])): ?> // this code is executed when the form is submitted <h2>Thank You <?php echo $_POST['firstname']; ?> </h2> <p>You have been registered as <?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?> </p> <p>Go <a href="/registration_form.php">back</a> to the form</p> <?php else: ?> <h2>Registration Form</h2> <form action="registration_form.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
TUTAJ,
- Sprawdza, czy ukryte pole form_submitted w tablicy $_POST[] zostało wypełnione i wyświetla wiadomość z podziękowaniem i imieniem. Jeśli pole form_submitted w tablicy $_POST[] nie zostało wypełnione, formularz jest wyświetlany.
Więcej przykładów
Prosta wyszukiwarka
Zaprojektujemy prostą wyszukiwarkę, która wykorzystuje metodę PHP GET jako typ przesyłania formularza.
Dla uproszczenia użyjemy a Instrukcja if w PHP aby określić moc wyjściową.
Użyjemy tego samego kodu HTML dla powyższego formularza rejestracyjnego i dokonamy w nim minimalnych modyfikacji.
<html> <head> <title>Simple Search Engine</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_GET['form_submitted'])): ?> <h2>Search Results For <?php echo $_GET['search_term']; ?> </h2> <?php if ($_GET['search_term'] == "GET"): ?> <p>The GET method displays its values in the URL</p> <?php else: ?> <p>Sorry, no matches found for your search term</p> <?php endif; ?> <p>Go <a href="/search_engine.php">back</a> to the form</p> <?php else: ?> <h2>Simple Search Engine - Type in GET </h2> <form action="search_engine.php" method="GET"> Search Term: <input type="text" name="search_term"> <br> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
Wyświetl powyższą stronę w przeglądarce internetowej.
Wyświetli się następujący formularz.
Wpisz GET wielkimi literami, a następnie kliknij przycisk Wyślij.
Zostanie pokazane następujące okno.
Poniższy diagram przedstawia URL dla powyższych wyników.
Zanotuj URL wyświetlił wartość search_term i form_submitted. Spróbuj wpisać coś innego niż GET, a następnie kliknij przycisk Wyślij i zobacz, jakie otrzymasz wyniki.
Praca z polami wyboru i przyciskami radiowymi
Jeśli użytkownik nie zaznaczy pola wyboru ani przycisku radiowego, nie zostanie przesłana żadna wartość. Jeśli użytkownik zaznaczy pole wyboru lub przycisk radiowy, przesłana zostanie wartość jeden (1) lub prawda.
Zmodyfikujemy kod formularza rejestracyjnego i dodamy przycisk wyboru umożliwiający użytkownikowi wyrażenie zgody na warunki korzystania z usługi.
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_POST['form_submitted'])): ?> <?php if (!isset($_POST['agree'])): ?> <p>You have not accepted our terms of service</p> <?php else: ?> <h2>Thank You <?php echo $_POST['firstname']; ?></h2> <p>You have been registered as <?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?> </p> <p> Go <a href="/registration_form2.php">back</a> to the form</p> <?php endif; ?> <?php else: ?> <h2>Registration Form</h2> <form action="registration_form2.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <br> Agree to Terms of Service: <input type="checkbox" name="agree"> <br> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
Wyświetl powyższy formularz w przeglądarce.
Wpisz imię i nazwisko.
Należy pamiętać, że pole wyboru Akceptuję Warunki korzystania z usługi nie zostało zaznaczone.
Kliknij przycisk Prześlij.
Otrzymasz następujące wyniki.
Kliknij odnośnik Powrót do formularza i zaznacz pole wyboru.
Kliknij przycisk Prześlij.
Otrzymasz następujące wyniki.










