PHP-registreringsformular ved hjælp af GET, POST-metoder med eksempel

Hvad er Form?

Når du logger ind på et websted eller i din postkasse, interagerer du med en formular.

Formularer bruges til at få input fra brugeren og sende det til webserveren til behandling.

Diagrammet nedenfor illustrerer formularhåndteringsprocessen.

PHP formular

En formular er et HTML-tag, der indeholder grafiske brugergrænsefladeelementer såsom inputboks, afkrydsningsfelter, radioknapper osv.

Formen defineres ved hjælp af … tags og GUI-elementer defineres ved hjælp af formularelementer såsom input.

Hvornår og hvorfor bruger vi formularer?

  • Formularer er nyttige, når man udvikler fleksible og dynamiske applikationer, der accepterer brugerinput.
  • Formularer kan bruges til at redigere allerede eksisterende data fra databasen

Opret en formular

Vi vil bruge HTML-tags til at oprette en formular. Nedenfor er den minimale liste over ting, du skal bruge for at oprette en formular.

  • Åbning og lukning af formularmærker …
  • Formularindsendelse af typen POST eller GET
  • Indsendelses-URL, der behandler de indsendte data
  • Indtastningsfelter såsom inputfelter, tekstområder, knapper, afkrydsningsfelter osv.

Koden nedenfor opretter en simpel registreringsformular

<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>

Visning af ovenstående kode i en webbrowser viser følgende formular.

Opret en formular

HER,

  • … er åbnings- og lukkeformmærkerne
  • action=”registration_form.php” method=”POST”> angiver destinationswebadressen og indsendelsestypen.
  • For-/Efternavn: er etiketter til indtastningsfelterne
  • er inputboks-tags
  • er det nye linjemærke
  • er en skjult værdi, der bruges til at kontrollere, om formularen er indsendt eller ej
  • er den knap, der, når der klikkes på den, sender formularen til serveren til behandling

Indsendelse af formulardata til serveren

Formularens handlingsattribut angiver den indsendelses-URL, der behandler dataene. Metodeattributten angiver indsendelsestypen.

PHP POST metode

  • Dette er den indbyggede PHP super globale array-variabel, der bruges til at få værdier indsendt via HTTP POST-metoden.
  • Array-variablen kan tilgås fra ethvert script i programmet; det har et globalt omfang.
  • Denne metode er ideel, når du ikke ønsker at vise formularpostværdierne i URL'en.
  • Et godt eksempel på brug af post-metoden er, når du sender login-oplysninger til serveren.

Den har følgende syntaks.

<?php
 $_POST['variable_name'];
?>

HER,

  • "$_POST[...]" er PHP array
  • "'variable_name'" er URL-variabelnavnet.

PHP GET metode

  • Dette er den indbyggede PHP super globale array-variabel, der bruges til at få værdier indsendt via HTTP GET-metoden.
  • Array-variablen kan tilgås fra ethvert script i programmet; det har et globalt omfang.
  • Denne metode viser formularværdierne i URL'en.
  • Det er ideelt til søgemaskineformularer, da det giver brugerne mulighed for at bogmærke resultaterne.

Den har følgende syntaks.

<?php
$_GET['variable_name'];
?>

HER,

  • "$_GET[...]" er PHP-arrayet
  • "'variable_name'" er URL-variabelnavnet.

GET vs POST metoder

POST GET
Værdier er ikke synlige i URL'en Værdier, der er synlige i URL'en
Har ingen begrænsning af længden af ​​værdierne, da de indsendes via HTTP-teksten Har begrænsning på længden af ​​værdierne normalt 255 tegn. Dette skyldes, at værdierne vises i URL'en. Bemærk, at den øvre grænse for tegn afhænger af browseren.
Har lavere ydeevne sammenlignet med Php_GET-metoden på grund af tid brugt på at indkapsle Php_POST-værdierne i HTTP-kroppen Har høj ydeevne sammenlignet med POST-metoden på grund af den enkle natur at tilføje værdierne i URL'en.
Understøtter mange forskellige datatyper såsom streng, numerisk, binær osv. Understøtter kun strengdatatyper, fordi værdierne vises i URL'en
Resultater kan ikke bogmærkes Resultater kan bogmærkes på grund af synligheden af ​​værdierne i URL'en

Nedenstående diagram viser forskellen mellem get og post

GET vs POST metoder

GET vs POST metoder

Behandling af registreringsformularens data

Registreringsformularen sender data til sig selv som angivet i formularens handlingsattribut.

Når en formular er blevet indsendt, udfyldes værdierne i $_POST super globale array.

Vi vil bruge PHP isset-funktionen til at kontrollere, om formularværdierne er blevet udfyldt i $_POST-arrayet og behandle dataene.

Vi vil ændre registreringsformularen til at inkludere PHP-koden, der behandler dataene. Nedenfor er den ændrede kode

<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="/da/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>

HER,

  • kontrollerer, om det skjulte form_submitted-felt er blevet udfyldt i $_POST[]-arrayet og viser en tak- og fornavnsmeddelelse.

    Hvis feltet form_fobmitted ikke er udfyldt i $_POST[]-arrayet, vises formularen.

Flere eksempler

Simpel søgemaskine

Vi vil designe en simpel søgemaskine, der bruger PHP_GET-metoden som formularindsendelsestype.

For nemheds skyld vil vi bruge en PHP If-erklæring at bestemme outputtet.

Vi vil bruge den samme HTML-kode til registreringsformularen ovenfor og foretage minimale ændringer af den.

<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="/da/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>

Se ovenstående side i en webbrowser

Følgende formular vil blive vist

Simpel søgemaskine

Skriv GET med stort bogstav, og klik derefter på indsend-knappen.

Følgende vil blive vist

Simpel søgemaskine

Diagrammet nedenfor viser URL'en til ovenstående resultater

Simpel søgemaskine

Bemærk, at URL'en har vist værdien af ​​søgeterm og form_indsendt. Prøv at indtaste noget andet end GET, og klik derefter på send-knappen og se, hvilke resultater du får.

Arbejde med afkrydsningsfelter, alternativknapper

Hvis brugeren ikke vælger et afkrydsningsfelt eller alternativknap, indsendes ingen værdi, hvis brugeren vælger et afkrydsningsfelt eller alternativknap, indsendes værdien en (1) eller sand.

Vi vil ændre registreringsformularens kode og inkludere en afkrydsningsknap, der giver brugeren mulighed for at acceptere servicevilkårene.

<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="/da/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>

Se ovenstående formular i en browser

Arbejde med afkrydsningsfelter, alternativknapper

Udfyld for- og efternavne

Bemærk, at afkrydsningsfeltet Accepter servicevilkår ikke er markeret.

Klik på knappen Send

Du får følgende resultater

Arbejde med afkrydsningsfelter, alternativknapper

Klik på tilbage til formularlinket, og marker derefter afkrydsningsfeltet

Arbejde med afkrydsningsfelter, alternativknapper

Klik på knappen Send

Du får følgende resultater

Arbejde med afkrydsningsfelter, alternativknapper

Resumé

  • Formularer bruges til at få data fra brugerne
  • Formularer oprettes ved hjælp af HTML-tags
  • Formularer kan indsendes til serveren til behandling ved hjælp af enten POST- eller GET-metoden
  • Formularværdier indsendt via POST-metoden er indkapslet i HTTP-kroppen.
  • Formularværdier indsendt via GET-metoden tilføjes og vises i URL'en.