Formularz rejestracyjny PHP przy użyciu metod GET, POST z przykładem
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 pole wprowadzania danych, pola wyboru, przyciski radiowe itd.
Formularz jest definiowany za pomocą … znaczniki i elementy GUI są definiowane przy użyciu elementów formularza, takich jak dane wejściowe.
Kiedy i dlaczego korzystamy z formularzy?
- Formularze są przydatne przy tworzeniu elastycznych i dynamicznych aplikacji, które akceptują dane wprowadzane przez użytkownika.
- Formularze umożliwiają edycję już istniejących danych z bazy 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
- Adres URL zgłoszenia, który będzie przetwarzał przesłane dane
- Pola wprowadzania danych, takie jak pola wprowadzania danych, obszary tekstowe, przyciski, pola wyboru itp.
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 docelowy adres URL i typ zgłoszenia.
- 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
- to przycisk, który po kliknięciu przesyła formularz do serwera w celu przetworzenia
Przesłanie danych formularza na serwer
Atrybut działania formularza określa adres URL przesyłania, który przetwarza dane. Atrybut metody określa typ przesłania.
Metoda PHP POST
- Jest to wbudowana w PHP superglobalna zmienna tablicowa, 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 wpisów formularza w adresie 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
- „Nazwa_zmiennej” to nazwa zmiennej adresu URL.
Metoda PHP GET
- Jest to wbudowana w PHP superglobalna zmienna tablicowa, 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 adresie URL.
- Jest idealny do formularzy wyszukiwarek, ponieważ umożliwia użytkownikom zaznaczanie wyników.
Ma następującą składnię.
<?php $_GET['variable_name']; ?>
TUTAJ,
- „$_GET[…]” to tablica PHP
- „Nazwa_zmiennej” to nazwa zmiennej adresu URL.
Metody GET i POST
POST | GET |
---|---|
Wartości niewidoczne w adresie URL | Wartości widoczne w adresie URL |
Nie ma ograniczenia długości wartości, ponieważ są one przesyłane za pośrednictwem treści protokołu HTTP | Ma ograniczenie długości wartości, zwykle 255 znaków. Dzieje się tak, ponieważ wartości są wyświetlane w adresie URL. Należy zauważyć, że górny limit znaków zależy od przeglądarki. |
Ma niższą wydajność w porównaniu do metody Php_GET ze względu na czas spędzony na enkapsulacji wartości Php_POST w treści HTTP | Ma wysoką wydajność w porównaniu z metodą POST ze względu na prosty charakter dodawania wartości w adresie URL. |
Obsługuje wiele różnych typów danych, takich jak ciąg znaków, numeryczne, binarne itp. | Obsługuje tylko typy danych typu string, ponieważ wartości są wyświetlane w adresie URL |
Wyniki nie mogą być oznaczone książką | Wyniki można oznaczyć jako książkowe ze względu na widoczność wartości w adresie URL |
Poniższy diagram pokazuje różnicę mię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ą wypełniane 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 tak, aby zawierał 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="/pl/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 zostało wypełnione w tablicy $_POST[] i wyświetla wiadomość z podziękowaniami i imieniem.
Jeśli pole form_fobmitted w tablicy $_POST[] nie zostało wypełnione, formularz jest wyświetlany.
Więcej przykładów
Prosta wyszukiwarka
Zaprojektujemy prostą wyszukiwarkę wykorzystującą metodę PHP_GET jako typ przesyłania formularza.
Dla uproszczenia użyjemy a Instrukcja PHP If 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="/pl/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 Prześlij.
Wyświetli się następujący komunikat
Poniższy diagram przedstawia adres URL powyższych wyników
Zwróć uwagę, że w adresie URL wyświetlona została wartość search_term i form_submitted. Spróbuj wpisać coś innego niż GET, a następnie kliknij przycisk Prześlij i zobacz, jakie otrzymasz wyniki.
Praca z polami wyboru i przyciskami radiowymi
Jeżeli użytkownik nie zaznaczy pola wyboru lub przycisku radiowego, nie zostanie przesłana żadna wartość. Jeżeli 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="/pl/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 łącze powrotu do formularza i zaznacz pole wyboru
Kliknij przycisk Prześlij
Otrzymasz następujące wyniki
Podsumowanie
- Formularze służą do pobierania danych od użytkowników
- Formularze tworzone są przy użyciu znaczników HTML
- Formularze można przesłać na serwer w celu przetworzenia za pomocą metody POST lub GET
- Wartości formularza przesłane metodą POST są hermetyzowane w treści HTTP.
- Wartości formularza przesłane za pomocą metody GET są dołączane i wyświetlane w adresie URL.