首頁 >後端開發 >php教程 >為什麼 `enctype='text/plain'` 與 HTML 表單中的 POST 方法不相容?

為什麼 `enctype='text/plain'` 與 HTML 表單中的 POST 方法不相容?

Barbara Streisand
Barbara Streisand原創
2024-12-16 04:37:11881瀏覽

Why is `enctype=

為什麼「method="post" enctype="text/plain"」不相容?

使用 HTML 表單編碼方法時"post" with "enctype="text/plain"," 表單資料無法傳遞到 PHP 腳本。這個問題背後的原因是什麼?為什麼 text/plain 編碼與 post 不相容,而 get 允許?

說明

PHP 不支援 "enctype="text/plain"" method="post";這不是程式錯誤。

表單中「enctype」的核准值分別是:

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

第一個選項是預設的,第二個選項是對於檔案上傳至關重要。

PHP 在下列情況下不會填入 $_POST 陣列使用「enctype=」text/plain」;它將值儲存在 $HTTP_RAW_POST_DATA中。 🎜>在file2.php:

預期結果:

但是,使用文字/純編碼,有無法區分input1 和input2 的值。

input1=abcrninput2=def, input2=ghi

input1=abc, input2=defrninput2=ghi
<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>

GET 和POST 的差別就是:
<?php
print($HTTP_RAW_POST_DATA);
?>

GET 變數出現在URL 中作為變數出現在URL 中作為變數查詢字串,並且必須進行URL 編碼,即使使用enctype="text/plain"。避免歧義,首選後者。

以上是為什麼 `enctype='text/plain'` 與 HTML 表單中的 POST 方法不相容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn