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 PHP

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.

Utwórz 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

Metody GET i POST

Metody 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

Prosta wyszukiwarka

Wpisz GET wielkimi literami, a następnie kliknij przycisk Prześlij.

Wyświetli się następujący komunikat

Prosta wyszukiwarka

Poniższy diagram przedstawia adres URL powyższych wyników

Prosta wyszukiwarka

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

Praca z polami wyboru i przyciskami radiowymi

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

Praca z polami wyboru i przyciskami radiowymi

Kliknij łącze powrotu do formularza i zaznacz pole wyboru

Praca z polami wyboru i przyciskami radiowymi

Kliknij przycisk Prześlij

Otrzymasz następujące wyniki

Praca z polami wyboru i przyciskami radiowymi

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.