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 fac formularele: Un formular HTML colectează date de intrare ale utilizatorului prin câmpuri precum casete de text, casete de selectare și butoane, apoi le trimite unui script de server.
  • 📬 Metoda POST: $_POST trimite valori în corpul HTTP, keeping le scoate din URL, care se potrivește autentificărilor și datelor sensibile.
  • 🔗 Metoda GET: $_GET adaugă valori la URL, astfel încât rezultatele pot fi adăugate la favorite, ceea ce este ideal pentru formularele de căutare.
  • 🇧🇷 POST vs. GET: POST nu are o limită practică de lungime și acceptă multe tipuri de date; GET este mai scurt, format doar din șiruri de caractere și vizibil.
  • Intrare de procesare: Funcția isset() verifică dacă un câmp a fost trimis înainte ca scriptul să citească și să utilizeze valoarea sa.
  • ☑️ Casete de selectare: O casetă de selectare trimite o valoare doar atunci când este bifată, așadar isset() confirmă dacă utilizatorul a fost de acord sau a selectat opțiunea.
  • 🤖 Asistență AI: Instrumentele de inteligență artificială pot genera un formular validat și securizat și pot ajuta la diagnosticarea motivului pentru care un formular nu se trimite corect.

Gestionarea formularelor PHP

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.

Formular PHP

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.

Creați un 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.

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

Motor de căutare simplu

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

Vor fi afișate următoarele.

Motor de căutare simplu

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

Motor de căutare simplu

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.

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 Trimiteți.

Veți obține următoarele rezultate.

Lucrul cu casete de selectare, butoane radio

Faceți clic pe linkul înapoi la formular, apoi bifați caseta de selectare.

Lucrul cu casete de selectare, butoane radio

Faceți clic pe butonul Trimiteți.

Veți obține următoarele rezultate.

Lucrul cu casete de selectare, butoane radio

Întrebări frecvente

$_GET citește valori din URL șir de interogare, $_POST citește valori din corpul cererii, iar $_REQUEST îmbină datele GET, POST și cookie-urile. Preferați matricea specifică pentru a ști exact de unde provine o valoare.

Nu aveți niciodată încredere în datele brute de intrare. Validați cu filter_var() sau cu reguli pentru fiecare câmp și executați o escape de ieșire cu htmlspecialchars() pentru a opri XSS. Folosiți instrucțiuni pregătite pentru scrierile în baza de date pentru a preveni injecția SQL.

Cauzele frecvente sunt o metodă de formular GET în loc de POST, lipsa atributelor name din intrări, o acțiune greșită URLsau un tip de cod enc multipart lipsă pentru încărcările de fișiere. Verificați fiecare dintre acestea în raport cu formularul dvs.

Da. Inteligența artificială poate construi formularul HTML plus validare pe server, protecție CSRF și ieșire prin caractere escape. RevVizualizați regulile pentru fiecare câmp și confirmați că verificările de securitate corespund aplicației dvs. înainte de implementare.

Da. Partajați formularul și gestionarul, iar inteligența artificială poate detecta o nepotrivire de metodă, un atribut name lipsă, o cale de acțiune incorectă sau o ramură de validare care blochează trimiterea, apoi poate sugera remedierea.

Rezumați această postare cu: