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

Hvad er Form?

Når du logger ind på en hjemmeside eller på din mail box, 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 elementer i brugergrænsefladen, såsom input box, kontrollere boxes 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 input boxes, tekstområder, knapper, checkboxes 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>

viewing ovenstående kode i en webbrowser viser following form.

Opret en formular

HER,

  • … er åbnings- og lukkeformmærkerne
  • action=”registration_form.php” method=”POST”> angiver destinationswebadressen og indsendelsestypen.
  • For-/Efternavn: er etiketter for input boxes
  • er input box 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 indsender login details til serveren.

Det har following 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.

Det har following 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 er displayed 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 er displayed i webadressen
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, er formularen displayed.

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

Folloenwing formularen vil blive vist

Simpel søgemaskine

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

Folloenwing vises

Simpel søgemaskine

Diagrammet nedenfor viser URL'en til ovenstående resultater

Simpel søgemaskine

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

Arbejder med check boxes, radioknapper

Hvis brugeren ikke vælger en check box eller alternativknap, indsendes ingen værdi, hvis brugeren vælger en check box eller alternativknappen, er værdien en (1) eller sand indsendt.

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

Arbejder med Check boxes, radioknapper

Udfyld for- og efternavne

Bemærk afkrydsningsfeltet Accepter Servicevilkårbox er ikke blevet valgt.

Klik på knappen Send

Du får folloenwing resultater

Arbejder med Check boxes, radioknapper

Klik på tilbage til formularlinket og vælg derefter checkenbox

Arbejder med Check boxes, radioknapper

Klik på knappen Send

Du får folloenwing resultater

Arbejder med Check boxes, radioknapper

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 er vedhæftet og displayed i URL'en.