Wir machen oft eine einfache Webseite und greifen daher auf die HTML-Sprache zurück, um sie zu programmieren. Im Laufe der Zeit stellen wir jedoch fest, dass dies nicht so einfach ist und dass wir Informationen einfügen möchten, um sie später zu sehen oder zu verarbeiten und zu ändern Dateneingabeformulare müssen unterstützt werden. Zu dieser Zeit ist die Sprache von HTML zu klein und wir wenden uns anderen Sprachen zu. Am häufigsten werden Eingabeformulare in PHP erstellt . Hierzu können die Methoden Get und Post verwendet werden.
Die Bedienung beider Methoden ist sehr einfach, wir senden ein Formular an ein PHP-Skript, damit die Informationen unseres Formulars in diesem Skript verfügbar sind. Auf diese Weise erreichen wir, dass unsere Website interaktiv ist und die Informationen, die wir über die Tastatur eingeben, verfügbar sind, um sie zu visualisieren oder verwenden zu können.
Es ist sehr wichtig zu wissen, wie man ein einfaches HTML-Formular erstellt und dann eine der beiden Methoden anwendet.
Ein Beispiel für ein einfaches Formular ist das folgende:
<form action = "form.php" method = "GET / POST"> Benutzer: <input type = "text" name = "user" /> <br /> Passwort: <input type = "password" name = "password" /> <br /> <input type = "submit" name = "submit" value = "Send" /> </ form>
Formular ist eine Bezeichnung, die angibt, dass ein Formular in HTML erstellt wird. Und hier sind die beiden verwendeten Attribute:
- action – Gibt an, welche Art von Aktion unser Formular ausführt, wenn die Informationen an eine E-Mail, ein Programm oder eine Webseite gesendet werden.
- method – ist das Attribut, das definiert, welche Art von Methode wir verwenden, wenn Get oder Post, dh wie das Formular gesendet wird. Es kann GET oder POST sein, aber standardmäßig, wenn wir nicht angeben, wird es GET sein.
Was ist nun der Unterschied zwischen der Post-Methode und der Get-Methode ?
Beginnen wir mit Get:
Wenn wir Daten über Get senden, werden die Informationen in einer URL gesendet, und wenn die von uns angeforderte Seite gerade geladen wurde, sind die gesendeten Daten für den Benutzer sichtbar, dh in diesem Fall, wenn Sie die Daten unseres Formulars eingeben Der Benutzer und das Passwort, die Daten werden in unserem Browser auf folgende Weise angezeigt:
http://miweb.com/for…contrasena=1986
Zuerst erscheint der Name unserer Webseite, gefolgt vom Namen des Formulars, das durch einen Strich getrennt ist, dh die Webadresse selbst; und nach dem Fragezeichen erscheinen die Werte der Felder, die wir über die Tastatur eingegeben haben.
Um auf die über get mit PHP gesendeten Informationen zuzugreifen, ist das Formular wie folgt:
<? php $ user = $ _GET ['user']; $ contrasena = $ _GET ['Passwort']; echo "Dein Benutzername ist". $ user. "und Ihr Passwort ist". $ contrasena; ?>
Wir müssen die Variable $ _GET mit dem Namen des Feldes verwenden, das wir wiederherstellen möchten, um die Informationen zu sammeln und in eine beliebige Variable einzugeben. Anschließend können wir sie normal wie jeden anderen Variablentyp verwenden.
Es wird mit Echo visualisiert und auf die gleiche Weise aufgerufen oder geändert wie jede andere Variable, die wir in PHP verwenden.
Der Nachteil der Get-Methode ist, dass die von uns eingegebenen Informationen sichtbar sind und nicht versteckt gesendet werden. Wenn wir vertrauliche Informationen wie Passwörter, Kreditkarten usw. senden, sind unsere Informationen daher nicht sicher.
Ein weiterer Nachteil der Verwendung von Get ist, dass, wenn unser Formular viele Felder enthält , alle Werte in unserer URL verkettet werden, sodass die Adresse im Browser zu lang ist und die maximal unterstützte Länge nur 2048 Zeichen beträgt.
Außerdem muss hinzugefügt werden, dass die get-Methode keine binären Informationen oder Dokumente senden kann, sondern nur Zeichen akzeptiert, die in ASCII codiert sind.
Zusammenfassend können wir sagen, dass die GET-Methode im Allgemeinen nicht sehr zu empfehlen ist, es sei denn, wir senden unwichtige Informationen oder was nicht wichtig ist, dass sie für alle sichtbar sind und dass es sich um kleine Informationen handelt.
Die Verwendung von Post in PHP ist wie folgt:
<? php $ user = $ _ POST ['user']; $ contrasena = $ _ POST ['Passwort']; Echo "Ihr Benutzername ist". $ user. msgstr "und Ihr Passwort ist". $ password; ?>
Genau wie in Get speichern wir den Inhalt des gewünschten Feldes in einer Variablen, diesmal jedoch über $ _POST . Es funktioniert genauso wie beim Anzeigen, Ändern von Informationen usw.
Als Vorteile in Bezug auf Get gelten:
- Es gibt keine Beschränkung der Größe von 2048 Zeichen, die mit Get festgelegt wurde.
- Die Informationen können sicher übertragen werden, wenn wir sie über einige Protokolle senden.
- Zusätzlich zum Akzeptieren von in ASCII codierten Zeichen können wir auch Binärdaten senden.
Dazu müssen Sie die HTML-Eingabemaske etwas modifizieren:
<form enctype = "multipart / form-data" action = "form.php" method = "post"> Datei zum Hochladen: <input name = "archive" type = "file" /> <input type = "submit" name = "submit" value = "Send" /> </ form>
Wir haben nur in der ersten Zeile das reservierte Wort enctype eingegeben. Dies ist ein Attribut des Formular-Tags, das angibt, wie die Informationen beim Senden über das Formular übertragen werden. In dieses Attribut haben wir Multipart- / Formulardaten eingefügt, was bedeutet, dass Binärdaten gesendet werden. In dem Formular selbst müssen Sie angeben, dass eine Datei gesendet werden soll, indem Sie eine Datei in den Eingabe- oder Eingabetyp einfügen.
In diesem Fall verwenden wir nicht mehr die Variable $ _POST, sondern müssen $ _FILES verwenden . Wenn Sie mit Dateien arbeiten, ist es praktisch, eine Fehlerbehandlung wie im folgenden Beispiel durchzuführen :
<? php if ($ _FILES ["Datei"] ["Fehler"]> 0) { Echo "Fehler:" $ _FILES ["Datei"] ["Fehler"]. "<br />"; } sonst { Echo "Name:" $ _FILES ["Datei"] ["Name"]. "<br />"; Echo "Typ:" $ _FILES ["Datei"] ["Typ"]. "<br />"; Echo "Größe:" $ _FILES ["Datei"] ["Größe"]. "<br />"; Echo "Route:" $ _FILES ["file"] ["tmp_name"]; } ?>
wo:
-> $ _ FILES [“Datei”] [“Fehler”] enthält den Fehlercode für die betreffende Datei.
-> $ _ FILES [“Datei”] [“Name”] ist der Name der Datei.
-> $ _ FILES [“Datei”] [“Typ”] ist der Typ der Datei, die gesendet wird, wenn dieser Wert angegeben wurde. Dieses Feld ist serverseitig nicht markiert, daher sind die Informationen möglicherweise nicht korrekt.
-> $ _ FILES [“Datei”] [“Größe”] gibt die Größe der Datei in Bytes an.
-> $ _ FILES [“Datei”] [“tmp_name”] ist der Pfad oder temporäre Name der Datei, in der die Datei gespeichert ist, die wir auf den Server hochladen.