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

⚡ Smart opsummering

Formularhåndtering i PHP indsamler brugerinput fra HTML-formularer og behandler det på serveren via superglobalerne $_POST og $_GET. Denne gennemgang opbygger en registreringsformular, forklarer POST- og GET-metoderne, sammenligner dem og viser, hvordan man behandler felter, afkrydsningsfelter og søgeinput.

  • 📝 Hvad formularer gør: En HTML-formular indsamler brugerinput via felter som tekstbokse, afkrydsningsfelter og knapper og sender det derefter til et serverscript.
  • 📬 POST metode: $_POST sender værdier i HTTP-brødteksten, keeping dem ud af URL, som passer til logins og følsomme data.
  • 🔗 GET metode: $_GET tilføjer værdier til URL, så resultater kan bogmærkes, hvilket er ideelt til søgeformularer.
  • ⚖️ POST vs. GET: POST har ingen praktisk længdegrænse og understøtter mange datatyper; GET er kortere, kun strenge og synlig.
  • Behandling af input: Funktionen isset() kontrollerer, om et felt blev indsendt, før scriptet læser og bruger dets værdi.
  • ☑️ Afkrydsningsfelter: Et afkrydsningsfelt sender kun en værdi, når det er markeret, så isset() bekræfter, om brugeren accepterede eller valgte indstillingen.
  • 🤖 AI Assist: AI-værktøjer kan generere en valideret, sikker formular og hjælpe med at diagnosticere, hvorfor en formular ikke indsendes korrekt.

Håndtering af PHP-formularer

Hvad er Form?

Når du logger ind på en hjemmeside eller din postkasse, 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 brugergrænsefladeelementer såsom inputfelter, afkrydsningsfelter, radioknapper og mere.

Formen er defineret 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 ved udviklingping 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
  • Indsendelse URL som vil behandle de indsendte data
  • Inputfelter såsom inputbokse, tekstområder, knapper, afkrydsningsfelter og lignende.

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>

Visning af ovenstående kode i en webbrowser viser følgende formular.

Opret en formular

HER,

  • … er åbnings- og lukkeformmærkerne
  • action="registration_form.php" method="POST" angiver destinationen URL og indsendelsestypen.
  • For-/Efternavn: er etiketter til indtastningsfelterne
  • er inputboks-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 den klikkes på, sender formularen til serveren til behandling

Indsendelse af formulardata til serveren

Formularens handlingsattribut angiver indsendelsen URL der behandler dataene. Method-attributten angiver indsendelsestypen.

PHP POST metode

  • Dette er den indbyggede PHP superglobale array-variabel, der bruges til at få værdier sendt 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 formularens indlægsværdier i URL.
  • Et godt eksempel på brugen af ​​POST-metoden er, når man sender loginoplysninger til serveren.

Den har følgende syntaks.

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

HER,

  • "$_POST[...]" er PHP array
  • “'variabel_navn'” er navnet på formularfeltet.

PHP GET metode

  • Dette er den indbyggede PHP superglobale array-variabel, der bruges til at hente værdier, der sendes 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.
  • Det er ideelt til søgemaskineformularer, da det giver brugerne mulighed for at bogmærke resultaterne.

Den har følgende syntaks.

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

HER,

  • "$_GET[...]" er PHP-arrayet
  • "'variabel_navn'" er URL variabelnavn.

GET vs POST metoder

POST GET
Værdier, der ikke er synlige i URL Værdier synlige i URL
Har ingen begrænsning på længden af ​​værdierne, da de sendes via HTTP-anmodningens brødtekst. Har en begrænsning på værdiernes længde, normalt 255 tegn. Dette skyldes, at værdierne vises i URLBemærk, at den øvre grænse for tegn afhænger af browseren.
Har lavere ydeevne sammenlignet med GET-metoden på grund af den tid, der bruges på at indkapsle POST-værdierne i HTTP-teksten. Har højere ydeevne sammenlignet med POST-metoden på grund af den simple natur af at tilføje værdierne i URL.
Understøtter mange forskellige datatyper såsom strenge, numeriske, binære og mere. Understøtter kun strengdatatyper, fordi værdierne vises i URL
Resultater kan ikke bogmærkes Resultater kan bogmærkes på grund af synligheden af ​​værdierne i URL

Diagrammet nedenfor 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 det superglobale array $_POST.

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, så den inkluderer den PHP-kode, 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="/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 felt form_submitted er udfyldt i $_POST[]-arrayet og viser en takkebesked og et fornavn. Hvis feltet form_submitted ikke er udfyldt i $_POST[]-arrayet, vises formularen.

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-sætning 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="/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.

Følgende formular vil blive vist.

Simpel søgemaskine

Skriv GET med store bogstaver, og klik derefter på send-knappen.

Følgende vil blive vist.

Simpel søgemaskine

Diagrammet nedenfor viser URL for ovenstående resultater.

Simpel søgemaskine

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

Arbejde med afkrydsningsfelter, alternativknapper

Hvis brugeren ikke markerer et afkrydsningsfelt eller en alternativknap, sendes der ingen værdi. Hvis brugeren markerer et afkrydsningsfelt eller en alternativknap, sendes værdien én (1) eller sand.

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

Arbejde med afkrydsningsfelter, alternativknapper

Udfyld for- og efternavn.

Bemærk, at afkrydsningsfeltet Accepter servicevilkår ikke er markeret.

Klik på knappen Submit.

Du får følgende resultater.

Arbejde med afkrydsningsfelter, alternativknapper

Klik på bagsiden af ​​formularlinket, og markér derefter afkrydsningsfeltet.

Arbejde med afkrydsningsfelter, alternativknapper

Klik på knappen Submit.

Du får følgende resultater.

Arbejde med afkrydsningsfelter, alternativknapper

Ofte Stillede Spørgsmål

$_GET læser værdier fra URL forespørgselsstreng, $_POST læser værdier fra forespørgselsteksten, og $_REQUEST fletter GET-, POST- og cookiedata. Foretræk det specifikke array, så du ved præcis, hvor en værdi kommer fra.

Stol aldrig på rå input. Valider med filter_var() eller regler for hvert felt, og escape output med htmlspecialchars() for at stoppe XSS. Brug forberedte sætninger til databaseskrivninger for at forhindre SQL-injektion.

Almindelige årsager er en formmetode for GET i stedet for POST, manglende navneattributter på input, en forkert handling URLeller en manglende flerdelt enctype til filuploads. Tjek hver af disse mod din formular.

Ja. AI kan bygge HTML-formularen plus serversidevalidering, CSRF-beskyttelse og escaped output. RevSe reglerne for hvert felt, og bekræft, at sikkerhedskontrollen stemmer overens med din applikation, før du implementerer den.

Ja. Del formularen og handleren, så kan AI finde en metodeuoverensstemmelse, en manglende navneattribut, en forkert handlingssti eller en valideringsgren, der blokerer for afsendelse, og derefter foreslå en løsning.

Opsummer dette indlæg med: