Formular de înregistrare PHP folosind metodele GET, POST cu exemplu
⚡ Rezumat inteligent
Gestionarea formularelor în PHP capturează datele introduse de utilizator din formularele HTML și le procesează pe server prin intermediul superglobalelor $_POST și $_GET. Acest ghid construiește un formular de înregistrare, explică metodele POST și GET, le compară și arată cum se procesează câmpurile, casetele de selectare și datele de căutare.

Ce este Forma?
Când te conectezi la un site web sau la căsuța ta poștală, interacționezi 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 de interfață grafică cu utilizatorul, cum ar fi casete de introducere date, casete de selectare, butoane radio și multe altele.
Formularul este definit folosind … etichetele și elementele GUI sunt definite folosind elemente de formular, cum ar fi input-ul.
Când și de ce folosim formulare?
- Formularele sunt utile atunci când se dezvoltăping aplicații flexibile și dinamice care acceptă input de la utilizator.
- Formularele pot fi folosite pentru a edita date deja existente în 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
- Supunere URL care va prelucra datele transmise
- Câmpuri de introducere a datelor, cum ar fi casete de introducere a datelor, zone de text, butoane, casete de selectare și altele asemenea.
Codul de mai jos creează un formular de înregistrare simplu.
<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ă destinația URL ș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, atunci când este apăsat, trimite formularul către server pentru procesare
Trimiterea datelor din formular către server
Atributul action al formularului specifică trimiterea URL care procesează datele. Atributul method specifică tipul de trimitere.
Metoda PHP POST
- Aceasta este variabila superglobală încorporată în PHP, utilizată pentru a obține valori 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 URL.
- Un bun exemplu de utilizare a metodei POST este atunci când trimiteți detaliile de conectare către server.
Are următoarea sintaxă.
<?php
$_POST['variable_name'];
?>
AICI,
- „$_POST[…]” este matrice PHP
- „'variable_name'” este numele câmpului formularului.
Metoda PHP GET
- Aceasta este variabila superglobală încorporată în PHP, 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 URL.
- Este ideal pentru formularele motoarelor de căutare, deoarece permite utilizatorilor să adauge rezultatele la favorite.
Are următoarea sintaxă.
<?php
$_GET['variable_name'];
?>
AICI,
- „$_GET[…]” este matricea PHP
- „'nume_variabilă'” este URL numele variabilei.
Metode GET vs POST
| POST | GET |
|---|---|
| Valorile nu sunt vizibile în URL | Valori vizibile în URL |
| Nu are nicio limitare privind lungimea valorilor, deoarece acestea sunt trimise prin intermediul corpului cererii HTTP | Are o limitare privind lungimea valorilor, de obicei 255 de caractere. Acest lucru se datorează faptului că valorile sunt afișate în URLRețineți că limita superioară a caracterelor depinde de browser. |
| Are performanțe mai scăzute în comparație cu metoda GET din cauza timpului petrecut pentru încapsularea valorilor POST în corpul HTTP | Are performanțe mai mari în comparație cu metoda POST datorită naturii simple de adăugare a valorilor în URL. |
| Acceptă multe tipuri diferite de date, cum ar fi șiruri de caractere, numerice, binare și multe altele. | Acceptă doar tipuri de date șir de caractere, deoarece valorile sunt afișate în URL |
| Rezultatele nu pot fi adăugate la favorite | Rezultatele pot fi adăugate la favorite 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 un formular a fost trimis, valorile sunt populate în matricea superglobală $_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 procesează 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="/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ă a fost completat câmpul ascuns form_submitted în matricea $_POST[] și afișează un mesaj de mulțumire și un mesaj cu prenumele. Dacă nu a fost completat câmpul form_submitted în matricea $_POST[], formularul este afișat.
Mai multe exemple
Motor de căutare simplu
Vom proiecta un motor de căutare simplu care utilizează metoda PHP GET ca tip de trimitere a formularului.
De dragul simplității, vom folosi a Instrucțiune if în PHP 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="/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 Trimite.
Vor fi afișate următoarele.
Diagrama de mai jos arată URL pentru rezultatele de mai sus.
Rețineți URL a afișat valoarea lui search_term și form_submitted. Încearcă să introduci orice valoare diferită de GET, apoi apasă pe butonul Trimite și vezi ce rezultate obții.
Lucrul cu casete de selectare, butoane radio
Dacă utilizatorul nu selectează o casetă de selectare sau un buton radio, nu se trimite nicio valoare. Dacă utilizatorul selectează o casetă de selectare sau un buton radio, se trimite valoarea unu (1) sau adevărat.
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="/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 Trimiteți.
Veți obține următoarele rezultate.
Faceți clic pe linkul înapoi la formular, apoi bifați caseta de selectare.
Faceți clic pe butonul Trimiteți.
Veți obține următoarele rezultate.










