Heim > Backend-Entwicklung > PHP-Tutorial > Warum verursacht die Verwendung von „enctype='text/plain'` mit POST-Anfragen Probleme in PHP?

Warum verursacht die Verwendung von „enctype='text/plain'` mit POST-Anfragen Probleme in PHP?

Mary-Kate Olsen
Freigeben: 2024-12-24 06:09:22
Original
557 Leute haben es durchsucht

Why Does Using `enctype=

"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>
Nach dem Login kopieren

Im entsprechenden PHP Datei:

print($HTTP_RAW_POST_DATA);
Nach dem Login kopieren

Ergebnis:

input1=abc
input2=def
input2=ghi
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage