"method="post" enctype="text/plain": Ein Kompatibilitätsproblem
Bei Verwendung des Formularelements mit beiden method= „post“ und enctype="text/plain", können bei der Datenübertragung an die angegebene PHP-Datei Probleme auftreten. Dies liegt daran, dass PHP die Verarbeitung von Text/Plain-Kodierung für POST nicht unterstützt data.
Warum ist die Text-/Plain-Kodierung problematisch?
Zu den gültigen Werten für enctype gehören application/x-www-form-urlencoded und multipart/form-data Die erste ist die Standardeinstellung für POST-Anfragen, während die zweite beim Hochladen von Dateien verwendet wird.
Wenn Text/Plain-Kodierung mit POST, PHP verwendet wird speichert die Rohdaten des Formulars in der Variablen $HTTP_RAW_POST_DATA, anstatt das Array $_POST zu füllen. Dies kann zu Inkonsistenzen und Mehrdeutigkeiten beim Zugriff auf Formularwerte führen.
Beispiel
Bedenken Sie das folgende Formular:
<form method="post" enctype="text/plain" action="proc.php"> <textarea name="input1">abc input2=def</textarea> <input name="input2" value="ghi" /> <input type="submit"> </form>
Im entsprechenden PHP Datei:
print($HTTP_RAW_POST_DATA);
Ergebnis:
input1=abc input2=def input2=ghi
Wie oben gesehen, ist es unmöglich, zwischen den Werten von Eingabe1 und Eingabe2 zu unterscheiden, da es sich um Eingabe1 handeln könnte =abcrninput2=def, input2=ghi oder input1=abc, input2=defrninput2=ghi.
Im Gegensatz zu POST-Anfragen kodieren GET-Anfragen die Abfragezeichenfolge immer per URL, auch wenn enctype="text/plain" angegeben ist. Dies liegt daran, dass die Variablen Teil der URL selbst sind.
Das obige ist der detaillierte Inhalt vonWarum verursacht die Verwendung von „enctype='text/plain'` mit POST-Anfragen Probleme in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!