Heim >Backend-Entwicklung >PHP-Tutorial >Warum ist „enctype='text/plain'` nicht mit der POST-Methode in HTML-Formularen kompatibel?

Warum ist „enctype='text/plain'` nicht mit der POST-Methode in HTML-Formularen kompatibel?

Barbara Streisand
Barbara StreisandOriginal
2024-12-16 04:37:11884Durchsuche

Why is `enctype=

Warum ist „method="post" enctype="text/plain"" nicht kompatibel?

Bei Verwendung der HTML-Formularkodierungsmethode „post“ mit „enctype="text/plain", Formulardaten können nicht an das PHP-Skript übermittelt werden. Was ist der Grund für dieses Problem? Warum ist die Text-/Plain-Codierung mit Post nicht kompatibel, während sie mit Get zulässig ist?

Erklärung

PHP unterstützt „enctype="text/plain"“ nicht für „ method="post"; es handelt sich nicht um einen Programmfehler.

Genehmigte Werte für „enctype“ in einem Formular sind:

  • application/x-www-form-urlencoded
  • multipart/form-data

Die erste Option ist die Standardeinstellung, während die zweite Option ist ist für Datei-Uploads unerlässlich.

PHP füllt das $_POST-Array nicht, wenn Stattdessen wird „enctype="text/plain“ verwendet; der Wert wird in $HTTP_RAW_POST_DATA gespeichert.

Potenzielle Probleme mit der Text-/Plain-Kodierung

Berücksichtigen Sie Folgendes: folgendes Szenario:

In file1.php:

<form method="post" enctype="text/plain" action="file2.php">
  <textarea name="input1">abc
input2=def</textarea>
  <input name="input2" value="ghi" />
  <input type="submit">
</form>

In file2.php:

<?php
print($HTTP_RAW_POST_DATA);
?>

Das erwartete Ergebnis:

input1=abc
input2=def
input2=ghi

Bei Text-/Plain-Codierung gibt es jedoch eines Es gibt keine Möglichkeit, die Werte von Eingabe1 und Eingabe2 zu unterscheiden sei:

  • input1=abcrninput2=def, input2=ghi
  • input1=abc, input2=defrninput2=ghi

Der Unterschied zwischen GET und POST ist das:

  • GET-Variablen erscheinen in der URL als Abfrage Zeichenfolgen und müssen URL-codiert sein, auch mit enctype="text/plain".
  • POST-Variablen werden im letzten Header der HTTP-Anfrage (POSTDATA) übertragen und ermöglichen die Codierung entweder als text/plain oder application/x -www-form-urlencoded. Letzteres wird jedoch bevorzugt, um Unklarheiten zu vermeiden.

Das obige ist der detaillierte Inhalt vonWarum ist „enctype='text/plain'` nicht mit der POST-Methode in HTML-Formularen kompatibel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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