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: