PHP-registreringsformulär med GET, POST-metoder med exempel

⚡ Smart sammanfattning

Forms Handling i PHP samlar in användarinmatning från HTML-formulär och bearbetar den på servern via superglobalerna $_POST och $_GET. Den här genomgången bygger ett registreringsformulär, förklarar POST- och GET-metoderna, jämför dem och visar hur man bearbetar fält, kryssrutor och sökinmatning.

  • 📝 Vad formulär gör: Ett HTML-formulär samlar in användarinmatning via fält som textrutor, kryssrutor och knappar och skickar sedan inmatningen till ett serverskript.
  • 📬 POST-metod: $_POST skickar värden i HTTP-texten, keeping dem ut ur URL, vilket passar inloggningar och känsliga uppgifter.
  • 🔗 GET-metod: $_GET lägger till värden till URL, så resultaten kan bokmärkas, vilket är idealiskt för sökformulär.
  • ⚖️ POST kontra GET: POST har ingen praktisk längdgräns och stöder många datatyper; GET är kortare, endast strängar och synligt.
  • ✅ Bearbetningsinmatning: Funktionen isset() kontrollerar om ett fält skickades innan skriptet läser och använder dess värde.
  • ☑️ Kryssrutor: En kryssruta skickar bara ett värde när den är markerad, så isset() bekräftar om användaren godkände eller valde alternativet.
  • 🤖 AI Assist: AI-verktyg kan generera ett validerat, säkert formulär och hjälpa till att diagnostisera varför ett formulär inte skickas in korrekt.

Hantering av PHP-formulär

Vad är Form?

När du loggar in på en webbplats eller i din inkorg interagerar du med ett formulär.

Formulär används för att få input från användaren och skicka in den till webbservern för bearbetning.

Diagrammet nedan illustrerar formulärhanteringsprocessen.

PHP-formulär

Ett formulär är en HTML-tagg som innehåller grafiska gränssnittselement som inmatningsrutor, kryssrutor, radioknappar och mer.

Formuläret definieras med hjälp av … taggar och GUI-objekt definieras med hjälp av formulärelement som input.

När och varför använder vi formulär?

  • Formulär är praktiska vid utvecklingping flexibla och dynamiska applikationer som accepterar användarinmatning.
  • Formulär kan användas för att redigera redan befintlig data från databasen.

Skapa ett formulär

Vi kommer att använda HTML-taggar för att skapa ett formulär. Nedan är den minimala listan över saker du behöver för att skapa ett formulär.

  • Öppna och stänga formulärtaggar …
  • Formulärsinlämning typ POST eller GET
  • Inlämning URL som kommer att behandla de inlämnade uppgifterna
  • Inmatningsfält som inmatningsrutor, textområden, knappar, kryssrutor och liknande.

Koden nedan skapar ett enkelt registreringsformulär.

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

Om du visar ovanstående kod i en webbläsare visas följande formulär.

Skapa ett formulär

HÄR,

  • … är öppnings- och stängningsetiketterna
  • action="registration_form.php" method="POST" anger destinationen URL och inlämningstypen.
  • För-/efternamn: är etiketter för inmatningsrutorna
  • är inmatningsboxtaggar
  • är den nya radtaggen
  • är ett dolt värde som används för att kontrollera om formuläret har skickats in eller inte
  • är knappen som, när den klickas, skickar formuläret till servern för bearbetning

Skickar formulärdata till servern

Formulärets action-attribut anger inlämningen URL som bearbetar informationen. Metodattributet anger inlämningstypen.

PHP POST-metoden

  • Detta är den inbyggda PHP superglobala arrayvariabeln som används för att hämta värden som skickas via HTTP POST-metoden.
  • Arrayvariabeln kan nås från vilket skript som helst i programmet; den har en global räckvidd.
  • Den här metoden är idealisk när du inte vill visa formulärets inläggsvärden i URL.
  • Ett bra exempel på hur man använder POST-metoden är när man skickar inloggningsuppgifter till servern.

Den har följande syntax.

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

HÄR,

  • "$_POST[...]" är PHP-array
  • ”'variabelnamn'” är formulärfältets namn.

PHP GET-metoden

  • Detta är den inbyggda PHP superglobala arrayvariabeln som används för att hämta värden som skickas via HTTP GET-metoden.
  • Arrayvariabeln kan nås från vilket skript som helst i programmet; den har en global räckvidd.
  • Den här metoden visar formulärvärdena i URL.
  • Det är idealiskt för sökmotorformulär eftersom det låter användare bokmärka resultaten.

Den har följande syntax.

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

HÄR,

  • "$_GET[...]" är PHP-arrayen
  • "'variabelnamn'" är URL variabelnamn.

GET vs POST-metoder

POST FÅ
Värden som inte syns i URL Värden synliga i URL
Har ingen begränsning på längden på värdena eftersom de skickas via HTTP-begärans brödtext Har en begränsning på värdenas längd, vanligtvis 255 tecken. Detta beror på att värdena visas i URLObservera att den övre gränsen för tecken beror på webbläsaren.
Har lägre prestanda jämfört med GET-metoden på grund av den tid som går åt till att inkapsla POST-värdena i HTTP-texten. Har högre prestanda jämfört med POST-metoden på grund av den enkla naturen att lägga till värdena i URL.
Stöder många olika datatyper som strängar, numeriska, binära och mer. Stöder endast strängdatatyper eftersom värdena visas i URL
Resultaten kan inte bokmärkas Resultaten kan bokmärkas tack vare värdenas synlighet i URL

Diagrammet nedan visar skillnaden mellan GET och POST.

GET vs POST-metoder

GET vs POST-metoder

Behandling av registreringsformulärets uppgifter

Registreringsformuläret skickar data till sig själv som specificerats i formulärets handlingsattribut.

När ett formulär har skickats in fylls värdena i i den superglobala arrayen $_POST.

Vi kommer att använda PHP isset-funktionen för att kontrollera om formulärvärdena har fyllts i $_POST-matrisen och bearbetar data.

Vi kommer att modifiera registreringsformuläret så att det inkluderar PHP-koden som bearbetar informationen. Nedan följer den modifierade koden.

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

HÄR,

  • kontrollerar om det dolda fältet form_submitted har fyllts i arrayen $_POST[] och visar ett tack- och förnamnsmeddelande. Om fältet form_submitted inte har fyllts i arrayen $_POST[] visas formuläret.

Fler exempel

Enkel sökmotor

Vi kommer att designa en enkel sökmotor som använder PHP GET-metoden som formulärinlämningstyp.

För enkelhetens skull kommer vi att använda en PHP if-sats för att bestämma uteffekten.

Vi kommer att använda samma HTML-kod för registreringsformuläret ovan och göra minimala ändringar i det.

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

Visa sidan ovan i en webbläsare.

Följande formulär kommer att visas.

Enkel sökmotor

Skriv GET med versaler och klicka sedan på skicka-knappen.

Följande kommer att visas.

Enkel sökmotor

Diagrammet nedan visar URL för ovanstående resultat.

Enkel sökmotor

Notera URL har visat värdet för search_term och form_submitted. Försök att ange något annat än GET, klicka sedan på skicka-knappen och se vilka resultat du får.

Arbeta med kryssrutor, alternativknappar

Om användaren inte markerar en kryssruta eller alternativknapp skickas inget värde. Om användaren markerar en kryssruta eller alternativknapp skickas värdet ett (1) eller sant.

Vi kommer att ändra registreringsformulärets kod och inkludera en bockknapp som låter användaren godkänna användarvillkoren.

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

Visa formuläret ovan i en webbläsare.

Arbeta med kryssrutor, alternativknappar

Fyll i för- och efternamn.

Observera att kryssrutan Godkänn användarvillkoren inte har markerats.

Klicka på Skicka-knappen.

Du kommer att få följande resultat.

Arbeta med kryssrutor, alternativknappar

Klicka på baksidan av formulärlänken och markera sedan kryssrutan.

Arbeta med kryssrutor, alternativknappar

Klicka på Skicka-knappen.

Du kommer att få följande resultat.

Arbeta med kryssrutor, alternativknappar

Vanliga frågor

$_GET läser värden från URL frågesträngen, $_POST läser värden från begäran, och $_REQUEST sammanfogar GET-, POST- och cookiedata. Föredra den specifika arrayen så att du vet exakt var ett värde kommer ifrån.

Lita aldrig på rå indata. Validera med filter_var() eller regler för varje fält, och escape-utdata med htmlspecialchars() för att stoppa XSS. Använd förberedda satser för databasskrivningar för att förhindra SQL-injektion.

Vanliga orsaker är en formmetod för GET istället för POST, saknade namnattribut på indata, en felaktig åtgärd URL, eller en saknad flerdelad enctype för filuppladdningar. Kontrollera var och en av dessa mot ditt formulär.

Ja. AI kan bygga HTML-formuläret plus serversidesvalidering, CSRF-skydd och escaped utdata. RevVisa reglerna för varje fält och bekräfta att säkerhetskontrollerna matchar din applikation innan du driftsätter.

Ja. Dela formuläret och hanteraren, så kan AI upptäcka en metodmatchningsfel, ett saknat namnattribut, en felaktig åtgärdssökväg eller en valideringsgren som blockerar inlämning och sedan föreslå en åtgärd.

Sammanfatta detta inlägg med: