Heim >Backend-Entwicklung >PHP-Tutorial >Warum unterstützt POST „enctype='text/plain'` nicht, während GET dies tut?

Warum unterstützt POST „enctype='text/plain'` nicht, während GET dies tut?

Linda Hamilton
Linda HamiltonOriginal
2024-12-05 16:24:11419Durchsuche

Why Doesn't POST Support `enctype=

Inkompatibilität von method="post" und enctype="text/plain"

Beim Versuch, das folgende Formular zu verwenden:

<form method="post" enctype="text/plain" action="proc.php">

Bei der erfolgreichen Übertragung von Formulardaten an die Datei „proc.php“ können Schwierigkeiten auftreten. Was verursacht dieses Problem und warum ist es unmöglich, die „Text/Plain“-Kodierung mit der „Post“-Methode zu verwenden, während dies mit der „get“-Methode möglich ist?

Erklärung:

PHPs Unfähigkeit, die „Text/Plain“-Kodierung mit der „Post“-Methode zu verarbeiten, ist die Ursache dieses Problems (und es ist kein Problem). bug):

https://bugs.php.net/bug.php?id=33741

Für das „enctype“-Attribut im „

“ Tag sind die folgenden gültigen Werte:

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

Der erste Wert ist die Standardeinstellung, und die zweite ist nur für Datei-Uploads erforderlich.

Grund für PHPs Verhalten:

Alohci lieferte eine Erklärung dafür, warum PHP das Array $_POST nicht auffüllt und stattdessen den Wert in der Variablen $HTTP_RAW_POST_DATA speichert:

Unterscheidung zwischen GET und POST :

  • GET: Variablen werden als Abfragezeichenfolgen und in die URL eingefügt muss URL-kodiert sein. Auch mit „enctype=text/plain“ kodieren Browser URL-Variablen.
  • POST: Variablen sind nicht Teil der URL, werden aber als letzter Header in HTTP-Anfragen (POSTDATA) gesendet. Sie können angeben, ob sie als „text/plain“ oder „application/x-www-form-urlencoded“ gesendet werden sollen. Letzteres ist jedoch die einzige Option, die Mehrdeutigkeiten beseitigt.

Das obige ist der detaillierte Inhalt vonWarum unterstützt POST „enctype='text/plain'` nicht, während GET dies tut?. 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