In vielen Anwendungen müssen Sie die vom Benutzer eingegebenen Daten aus einem bestimmten Formular abrufen. Hier einige Methoden, um dies mit PHP zu tun.
Sie erstellen eine Website für Freiwillige, um sich mit einem Namen und einer E-Mail-Adresse für ein Projekt anzumelden. Sie haben ein einfaches Formular, in das Benutzer ihre Namen und E-Mail-Adressen eingeben. Was passiert, wenn sie auf dieses Formular klicken? Nichts passiert, wenn Sie reines altes HTML verwenden. HTML kann an sich nichts tun. Wir müssen dafür sorgen, dass PHP mit PHP funktioniert.
Das Abrufen von Eingaben aus einem HTML-Formular ist eine grundlegende PHP-Fähigkeit, die jeder kennen muss, da ein großer Teil jeder Webanwendung Formulare auf die eine oder andere Weise behandelt (z. B. Anmeldeformulare, Registrierungsformulare, Einstellungsformulare, E-Mail-Formulare usw.). .
$ _GET und $ _POST
Wir haben zwei vordefinierte Variablen in PHP, mit denen Daten aus einem HTML-Formular abgerufen werden. Dies sind $ _GET und $ _POST. Sie haben diese möglicherweise in einem HTML-Formular gesehen. Das öffnende Formular-Tag enthält ein Attribut mit dem Namen "get" oder "post". Beachten Sie das folgende Beispiel:
In diesem HTML-Formularelement geben wir ihm ein Methodenattribut von GET. Das heißt, um Daten aus diesem Formular abzurufen, müssen wir die Variable $ _GET in PHP verwenden. Auf der anderen Seite, wenn wir verwenden method = "post" Wir müssten die Variable $ _POST verwenden. Was ist der Unterschied? Wie bekommen wir die Daten tatsächlich?
$ _GET
Um die GET-Methode zu verwenden, würden wir unser Formular wie im folgenden Beispiel einrichten, wobei "get" als method-Attribut gesetzt ist.
Name:
Nummer:
Beachten Sie, dass wir jedes Formularfeld a angegeben haben Name Attribut. Dies ist notwendig, da wir jedes Feld anvisieren müssen. Wir geben jedem Formularfeld einen aussagekräftigen Namen. Nun, wenn der Benutzer auf "Senden" klickt, was passiert?
Das Aktionsattribut gibt eine andere Datei auf Ihrem Server an, an die die Formulardaten gesendet werden. Daher wird der eigentliche PHP-Teil nicht auf derselben Seite wie das Formular ausgeführt (obwohl dies möglich ist). Normalerweise wird es in einer anderen Datei ausgeführt. In diesem Fall werden die Daten des Formulars an die Datei gesendet, wenn der Benutzer auf "Senden" klickt process.php.
In der Datei process.php hätten wir folgenden Code:
Sie werden sehen, dass ich zwei neue Variablen zum Speichern der Werte meines Formulars ($ name und $ number) erstellt. Wir setzen diese Variablen auf das, was sich in dem Formularfeld befindet, das den Namen "fName" und "number" hat.
$ _GET ["fName"];
$ _GET ["Zahl"];
Daher nehmen wir die Werte aus unserem gerade ausgefüllten Formular aus den durch unsere $ _GET-Variable angegebenen Feldern und fügen sie in zwei neue Variablen ein. Anschließend geben wir die von uns erstellten Variablen an den Benutzer aus, um eine Nachricht auf der Aktionsseite anzuzeigen.
Meine HTML-Formularseite:
Wenn ich dann auf "Senden" klicke, beachten Sie die URL:
Das ist der Unterschied zwischen GET und POST. Bei der GET-Methode werden unsere Variablen an die URL der Verarbeitungsseite angehängt. Stellen Sie sich vor, Sie hätten ein Passwortfeld von einem Benutzer erhalten und es wurde in der URL angezeigt. Daher ist die Verwendung von GET zum Abrufen vertraulicher Benutzerinformationen im Allgemeinen keine gute Idee. Aus diesem Grund sollten Sie auch den POST zum Senden vertraulicher Informationen (z. B. Benutzerkennwörter, E-Mails usw.) verwenden.
$ _POST
Wir verwenden die POST-Variable genauso wie das GET. Der einzige Unterschied besteht darin, dass unsere Informationen für den Benutzer verborgen sind und nicht in der URL angezeigt werden. Wir haben auch keine Begrenzung der Datenmenge, die Sie senden können (für sehr große Formulare).
Um Ihre Methode im Formular in POST zu ändern, verwenden Sie Folgendes:
Name:
Nummer:
Um die Variablen in der process.php-Seite in POST zu ändern, verwenden Sie Folgendes:
Wenn Sie mit $ post auf "Submit" klicken, werden Ihre Variablen nicht in der URL angezeigt: