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.
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.
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
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
Tastați GET cu majuscule, apoi faceți clic pe butonul de trimitere.
Următoarele vor fi afișate
Diagrama de mai jos arată adresa URL pentru rezultatele de mai sus
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
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
Faceți clic pe înapoi la linkul formularului și apoi bifați caseta de selectare
Faceți clic pe butonul de trimitere
Veți obține următoarele rezultate
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.