PHP-Registrierungsformular mit GET- und POST-Methoden mit Beispiel

⚡ Intelligente Zusammenfassung

Die Formularverarbeitung in PHP erfasst Benutzereingaben aus HTML-Formularen und verarbeitet diese serverseitig mithilfe der Superglobalen $_POST und $_GET. Diese Anleitung erstellt ein Registrierungsformular, erklärt die POST- und GET-Methoden, vergleicht sie und zeigt, wie Felder, Kontrollkästchen und Sucheingaben verarbeitet werden.

  • 📝 Was Formulare bewirken: Ein HTML-Formular erfasst Benutzereingaben über Felder wie Textfelder, Kontrollkästchen und Schaltflächen und sendet diese anschließend an ein Server-Skript.
  • 📬 POST-Methode: $_POST sendet Werte im HTTP-Body, keeping sie aus dem URL, was für Logins und sensible Daten geeignet ist.
  • 🔗 GET-Methode: $_GET fügt Werte an die URLSo können Ergebnisse als Lesezeichen gespeichert werden, was ideal für Suchformulare ist.
  • ️ POST vs GET: POST hat praktisch keine Längenbegrenzung und unterstützt viele Datentypen; GET ist kürzer, nur Zeichenketten und sichtbar.
  • ✅ Verarbeitung der Eingabe: Die Funktion isset() prüft, ob ein Feld übermittelt wurde, bevor das Skript seinen Wert liest und verwendet.
  • ☑️ Kontrollkästchen: Eine Checkbox sendet nur dann einen Wert, wenn sie angekreuzt ist. Daher prüft isset(), ob der Benutzer zugestimmt oder die Option ausgewählt hat.
  • 🤖 KI-Assistent: KI-Tools können ein validiertes, sicheres Formular generieren und dabei helfen, zu diagnostizieren, warum ein Formular nicht korrekt übermittelt wird.

PHP-Formularverarbeitung

Was ist Form?

Wenn Sie sich auf einer Website oder in Ihrem E-Mail-Postfach anmelden, interagieren Sie mit einem Formular.

Formulare werden verwendet, um Eingaben vom Benutzer einzuholen und diese zur Verarbeitung an den Webserver zu übermitteln.

Das folgende Diagramm veranschaulicht den Formularverarbeitungsprozess.

PHP-Formular

Ein Formular ist ein HTML-Tag, das grafische Benutzeroberflächenelemente wie Eingabefelder, Kontrollkästchen, Optionsfelder und mehr enthält.

Das Formular wird mithilfe des … Tags und GUI-Elemente werden mithilfe von Formularelementen wie Eingabefeldern definiert.

Wann und warum verwenden wir Formulare?

  • Formulare sind hilfreich bei der Entwicklungping flexible und dynamische Anwendungen, die Benutzereingaben akzeptieren.
  • Mithilfe von Formularen können bereits vorhandene Daten aus der Datenbank bearbeitet werden.

Erstellen Sie ein Formular

Wir werden HTML-Tags verwenden, um ein Formular zu erstellen. Nachfolgend finden Sie die minimale Liste der Dinge, die Sie zum Erstellen eines Formulars benötigen.

  • Formular-Tags öffnen und schließen …
  • Formularübermittlungstyp POST oder GET
  • Einsendung URL das die übermittelten Daten verarbeiten wird
  • Eingabefelder wie Eingabefelder, Textbereiche, Schaltflächen, Kontrollkästchen und ähnliches.

Der unten stehende Code erstellt ein einfaches Registrierungsformular.

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

Wenn Sie den obigen Code in einem Webbrowser anzeigen, wird das folgende Formular angezeigt.

Erstellen Sie ein Formular

HIER,

  • … sind die öffnenden und schließenden Formular-Tags
  • action="registration_form.php" method="POST" gibt das Ziel an URL und die Art der Einreichung.
  • Vorname/Nachname: sind Beschriftungen für die Eingabefelder
  • sind Eingabefeld-Tags
  • ist das neue Zeilen-Tag
  • ist ein versteckter Wert, der verwendet wird, um zu überprüfen, ob das Formular gesendet wurde oder nicht
  • ist die Schaltfläche, die beim Anklicken das Formular zur Verarbeitung an den Server sendet.

Übermittlung der Formulardaten an den Server

Das Aktionsattribut des Formulars legt die Übermittlung fest. URL das die Daten verarbeitet. Das Attribut „Methode“ gibt den Übermittlungstyp an.

PHP POST-Methode

  • Dies ist die in PHP integrierte Superglobal-Array-Variable, die verwendet wird, um Werte zu erhalten, die über die HTTP-POST-Methode übermittelt werden.
  • Auf die Array-Variable kann von jedem Skript im Programm aus zugegriffen werden; es hat eine globale Reichweite.
  • Diese Methode ist ideal, wenn Sie die Formular-Post-Werte nicht im URL.
  • Ein gutes Beispiel für die Verwendung der POST-Methode ist das Übermitteln von Anmeldedaten an den Server.

Es hat die folgende Syntax.

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

HIER,

  • „$_POST[…]“ ist das PHP-Array
  • „'variable_name'“ ist der Name des Formularfelds.

PHP GET-Methode

  • Dies ist die in PHP integrierte Superglobal-Array-Variable, die verwendet wird, um Werte abzurufen, die über die HTTP-GET-Methode übermittelt werden.
  • Auf die Array-Variable kann von jedem Skript im Programm aus zugegriffen werden; es hat eine globale Reichweite.
  • Diese Methode zeigt die Formularwerte in der URL.
  • Es eignet sich ideal für Suchmaschinenformulare, da es den Benutzern ermöglicht, die Ergebnisse als Lesezeichen zu speichern.

Es hat die folgende Syntax.

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

HIER,

  • „$_GET[…]“ ist das PHP-Array
  • „'variable_name'“ ist der URL Variablennamen.

GET- und POST-Methoden

jetzt lesen STARTE
Werte, die in der URL im URL
Die Länge der Werte ist nicht beschränkt, da sie über den Body der HTTP-Anfrage übermittelt werden. Die Länge der Werte ist begrenzt, üblicherweise auf 255 Zeichen. Dies liegt daran, dass die Werte in der URLBeachten Sie, dass die maximale Zeichenanzahl vom Browser abhängt.
Die Performance ist im Vergleich zur GET-Methode geringer, da die POST-Werte zeitaufwändig im HTTP-Body gekapselt werden müssen. Bietet im Vergleich zur POST-Methode eine höhere Leistung, da die Werte einfach angehängt werden. URL.
Unterstützt viele verschiedene Datentypen wie Zeichenketten, Zahlen, Binärdaten und mehr. Unterstützt nur Zeichenketten-Datentypen, da die Werte in der Anzeige angezeigt werden. URL
Ergebnisse können nicht als Lesezeichen gespeichert werden. Die Ergebnisse können aufgrund der Sichtbarkeit der Werte in der URL

Das folgende Diagramm veranschaulicht den Unterschied zwischen GET und POST.

GET- und POST-Methoden

GET- und POST-Methoden

Verarbeitung der Anmeldeformulardaten

Das Registrierungsformular übermittelt Daten an sich selbst, wie im Aktionsattribut des Formulars angegeben.

Sobald ein Formular abgeschickt wurde, werden die Werte im $_POST-Superglobal-Array gespeichert.

Wir werden die PHP-Funktion isset verwenden, um zu prüfen, ob die Formularwerte in das Array $_POST eingefügt wurden, und die Daten verarbeiten.

Wir werden das Anmeldeformular so anpassen, dass es den PHP-Code zur Datenverarbeitung enthält. Der geänderte Code ist unten aufgeführt.

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

HIER,

  • Prüft, ob das versteckte Feld „form_submitted“ im Array „$_POST[]“ ausgefüllt ist, und zeigt eine Dankesnachricht mit dem Vornamen an. Ist das Feld „form_submitted“ nicht ausgefüllt, wird das Formular angezeigt.

Weitere Beispiele

Einfache Suchmaschine

Wir werden eine einfache Suchmaschine entwerfen, die die PHP-GET-Methode als Formularübermittlungstyp verwendet.

Der Einfachheit halber verwenden wir a PHP if-Anweisung um die Ausgabe zu bestimmen.

Wir werden den gleichen HTML-Code für das Registrierungsformular oben verwenden und nur minimale Änderungen daran vornehmen.

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

Die obige Seite kann in einem Webbrowser angezeigt werden.

Das folgende Formular wird angezeigt.

Einfache Suchmaschine

Geben Sie GET in Großbuchstaben ein und klicken Sie anschließend auf die Schaltfläche „Absenden“.

Folgendes wird angezeigt.

Einfache Suchmaschine

Das untenstehende Diagramm zeigt die URL für die oben genannten Ergebnisse.

Einfache Suchmaschine

Beachten Sie das URL hat den Wert von search_term und form_submitted angezeigt. Versuchen Sie, etwas anderes als GET einzugeben, klicken Sie dann auf die Schaltfläche "Senden" und schauen Sie, welche Ergebnisse Sie erhalten.

Arbeiten mit Kontrollkästchen und Optionsfeldern

Wenn der Benutzer kein Kontrollkästchen oder Optionsfeld auswählt, wird kein Wert übermittelt. Wenn der Benutzer ein Kontrollkästchen oder Optionsfeld auswählt, wird der Wert eins (1) oder „wahr“ übermittelt.

Wir ändern den Code des Registrierungsformulars und fügen eine Check-Schaltfläche ein, die es dem Benutzer ermöglicht, den Nutzungsbedingungen zuzustimmen.

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

Das obige Formular kann in einem Browser angezeigt werden.

Arbeiten mit Kontrollkästchen und Optionsfeldern

Bitte tragen Sie Vor- und Nachnamen ein.

Beachten Sie, dass das Kontrollkästchen „Servicebedingungen akzeptieren“ nicht aktiviert wurde.

Klicken Sie auf die Schaltfläche "Senden".

Sie erhalten die folgenden Ergebnisse.

Arbeiten mit Kontrollkästchen und Optionsfeldern

Klicken Sie auf den Link „Zurück zum Formular“ und wählen Sie dann das Kontrollkästchen aus.

Arbeiten mit Kontrollkästchen und Optionsfeldern

Klicken Sie auf die Schaltfläche "Senden".

Sie erhalten die folgenden Ergebnisse.

Arbeiten mit Kontrollkästchen und Optionsfeldern

Häufig gestellte Fragen

$_GET liest Werte aus der URL Die Abfragezeichenfolge (Query String) und `$_POST` lesen Werte aus dem Anfragetext, während `$_REQUEST` GET-, POST- und Cookie-Daten zusammenführt. Verwenden Sie am besten das spezifische Array, damit Sie genau wissen, woher ein Wert stammt.

Vertrauen Sie niemals unformatierten Eingaben. Validieren Sie diese mit `filter_var()` oder Regeln für jedes Feld und maskieren Sie die Ausgabe mit `htmlspecialchars()`, um XSS-Angriffe zu verhindern. Verwenden Sie vorbereitete Anweisungen für Datenbankzugriffe, um SQL-Injection zu vermeiden.

Häufige Ursachen sind die Verwendung der Formularmethode GET anstelle von POST, fehlende Namensattribute bei Eingabefeldern oder eine falsche Aktion. URLoder ein fehlender Multipart-Enctype für Datei-Uploads. Überprüfen Sie jeden dieser Punkte anhand Ihres Formulars.

Ja. KI kann das HTML-Formular sowie serverseitige Validierung, CSRF-Schutz und maskierte Ausgabe erstellen. RevPrüfen Sie vor der Bereitstellung die Regeln für jedes Feld und vergewissern Sie sich, dass die Sicherheitsprüfungen zu Ihrer Anwendung passen.

Ja. Teilen Sie das Formular und den Handler, und die KI kann eine Methodenabweichung, ein fehlendes Namensattribut, einen falschen Aktionspfad oder einen Validierungszweig, der die Übermittlung blockiert, erkennen und dann die Lösung vorschlagen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: