Formular de înregistrare PHP folosind metodele GET, POST cu exemplu

Ce este Forma?

Când vă conectați la un site web sau la căsuța de e-mail, interacționați cu un formular.

Formularele sunt folosite pentru a obține informații de la utilizator și pentru a le trimite la serverul web pentru procesare.

Diagrama de mai jos ilustrează procesul de gestionare a formularelor.

Formular PHP

Un formular este o etichetă HTML care conține elemente grafice ale interfeței utilizator, cum ar fi casete de introducere, butoane radio, casete de validare etc.

Forma este definită folosind … etichetele și elementele GUI sunt definite folosind elemente de formular, cum ar fi intrarea.

Când și de ce folosim formulare?

  • Formularele sunt utile atunci când se dezvoltă aplicații flexibile și dinamice care acceptă intrarea utilizatorului.
  • Formularele pot fi folosite pentru a edita date deja existente din baza de date

Creați un formular

Vom folosi etichete HTML pentru a crea un formular. Mai jos este lista minimă de lucruri de care aveți nevoie pentru a crea un formular.

  • Deschiderea și închiderea etichetelor formularului …
  • Trimiterea formularului de tip POST sau GET
  • Adresa URL de trimitere care va procesa datele trimise
  • Câmpuri de introducere, cum ar fi casete de introducere, zone de text, butoane, casete de validare etc.

Codul de mai jos creează un formular simplu de înregistrare

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

Vizualizarea codului de mai sus într-un browser web afișează următorul formular.

Creați un formular

AICI,

  • … sunt etichetele formularului de deschidere și de închidere
  • action=”registration_form.php” method=”POST”> specifică adresa URL de destinație și tipul de trimitere.
  • Prenume/Nume: sunt etichete pentru casetele de introducere
  • sunt etichete casete de intrare
  • este noua etichetă de linie
  • este o valoare ascunsă care este folosită pentru a verifica dacă formularul a fost trimis sau nu
  • este butonul care la apasat trimite formularul la server pentru procesare

Trimiterea datelor din formular către server

Atributul de acțiune al formularului specifică adresa URL de trimitere care prelucrează datele. Atributul method specifică tipul de trimitere.

Metoda PHP POST

  • Aceasta este variabila matrice super globală încorporată în PHP care este utilizată pentru a obține valorile trimise prin metoda HTTP POST.
  • Variabila matrice poate fi accesată din orice script din program; are o amploare globală.
  • Această metodă este ideală atunci când nu doriți să afișați valorile postării formularului în adresa URL.
  • Un bun exemplu de utilizare a metodei post este atunci când trimiteți detaliile de conectare la server.

Are următoarea sintaxă.

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

AICI,

  • „$_POST[…]” este matrice PHP
  • „'variable_name'” este numele variabilei URL.

Metoda PHP GET

  • Aceasta este variabila matrice super globală încorporată în PHP care este utilizată pentru a obține valori trimise prin metoda HTTP GET.
  • Variabila matrice poate fi accesată din orice script din program; are o amploare globală.
  • Această metodă afișează valorile formularului în adresa URL.
  • Este ideal pentru formularele motoarelor de căutare, deoarece permite utilizatorilor să marcheze rezultatele.

Are următoarea sintaxă.

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

AICI,

  • „$_GET[…]” este matricea PHP
  • „'variable_name'” este numele variabilei URL.

Metode GET vs POST

POST GET
Valorile nu sunt vizibile în adresa URL Valori vizibile în URL
Nu are limitare a lungimii valorilor, deoarece acestea sunt trimise prin corpul HTTP Are o limitare a lungimii valorilor de obicei 255 de caractere. Acest lucru se datorează faptului că valorile sunt afișate în URL. Rețineți că limita superioară a caracterelor depinde de browser.
Are performanțe mai scăzute în comparație cu metoda Php_GET datorită timpului petrecut pentru încapsularea valorilor Php_POST în corpul HTTP Are performanțe ridicate în comparație cu metoda POST datorită naturii simple a anexării valorilor în URL.
Acceptă multe tipuri diferite de date, cum ar fi șir, numerice, binare etc. Acceptă numai tipuri de date șir, deoarece valorile sunt afișate în adresa URL
Rezultatele nu pot fi marcate Rezultatele pot fi marcate datorită vizibilității valorilor din URL

Diagrama de mai jos arată diferența dintre get și post

Metode GET vs POST

Metode GET vs POST

Prelucrarea datelor din formularul de înregistrare

Formularul de înregistrare își trimite date după cum este specificat în atributul de acțiune al formularului.

Când a fost trimis un formular, valorile sunt populate în matricea super globală $_POST.

Vom folosi funcția PHP isset pentru a verifica dacă valorile formularului au fost completate în matricea $_POST și pentru a procesa datele.

Vom modifica formularul de înregistrare pentru a include codul PHP care prelucrează datele. Mai jos este codul modificat

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

AICI,

  • verifică dacă câmpul ascuns form_submitted a fost completat în matricea $_POST[] și afișează un mesaj de mulțumire și prenume.

    Dacă câmpul form_fobmitted nu a fost completat în matricea $_POST[], formularul este afișat.

Mai multe exemple

Motor de căutare simplu

Vom proiecta un motor de căutare simplu care folosește metoda PHP_GET ca tip de trimitere a formularului.

De dragul simplității, vom folosi a Declarația PHP If pentru a determina ieșirea.

Vom folosi același cod HTML pentru formularul de înregistrare de mai sus și vom face modificări minime.

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

Vizualizați pagina de mai sus într-un browser web

Va fi afișat următorul formular

Motor de căutare simplu

Tastați GET cu majuscule, apoi faceți clic pe butonul de trimitere.

Următoarele vor fi afișate

Motor de căutare simplu

Diagrama de mai jos arată adresa URL pentru rezultatele de mai sus

Motor de căutare simplu

Rețineți că adresa URL a afișat valoarea search_term și form_submitted. Încercați să introduceți ceva diferit de GET, apoi faceți clic pe butonul de trimitere și vedeți ce rezultate veți obține.

Lucrul cu casete de selectare, butoane radio

Dacă utilizatorul nu selectează o casetă de validare sau un buton radio, nu este trimisă nicio valoare, dacă utilizatorul selectează o casetă de validare sau un buton radio, valoarea unu (1) sau adevărată este trimisă.

Vom modifica codul formularului de înregistrare și vom include un buton de verificare care permite utilizatorului să fie de acord cu termenii și condițiile.

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

Vizualizați formularul de mai sus într-un browser

Lucrul cu casete de selectare, butoane radio

Completați numele și prenumele

Rețineți că caseta de selectare Agree to Terms of Service nu a fost bifată.

Faceți clic pe butonul de trimitere

Veți obține următoarele rezultate

Lucrul cu casete de selectare, butoane radio

Faceți clic pe înapoi la linkul formularului și apoi bifați caseta de selectare

Lucrul cu casete de selectare, butoane radio

Faceți clic pe butonul de trimitere

Veți obține următoarele rezultate

Lucrul cu casete de selectare, butoane radio

Rezumat

  • Formularele sunt folosite pentru a obține date de la utilizatori
  • Formularele sunt create folosind etichete HTML
  • Formularele pot fi trimise la server pentru procesare folosind fie metoda POST, fie GET
  • Valorile formularelor trimise prin metoda POST sunt încapsulate în corpul HTTP.
  • Valorile formularelor trimise prin metoda GET sunt atașate și afișate în URL.