"method="post" enctype="text/plain":兼容性问题
当将表单元素与两种方法一起使用时= "post" 和 enctype="text/plain",用户可能会遇到数据传输到指定 PHP 文件的问题,这是因为 PHP 不支持处理 text/plain 编码。对于 POST 数据。
为什么 text/plain 编码有问题?
enctype 的有效值包括 application/x-www-form-urlencoded 和 multipart/form-data . 第一个是 POST 请求的默认值,第二个是上传文件时使用的。
当使用 text/plain 编码时POST,PHP 将原始表单数据存储在 $HTTP_RAW_POST_DATA 变量中,而不是填充 $_POST 数组,这可能会导致访问表单值时出现不一致和歧义。
示例
考虑以下形式:<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>在相应的PHP 文件:
print($HTTP_RAW_POST_DATA);
结果:
input1=abc input2=def input2=ghi如上所示,无法区分 input1 和 input2 的值,因为它们可能是输入1=abcrn输入2=def,输入2=ghi或输入1=abc, input2=defrninput2=ghi.与 POST 请求不同,GET 请求始终对查询字符串进行 URL 编码,即使指定了 enctype="text/plain" 也是如此。这是因为变量是 URL 本身的一部分。
以上是为什么在 POST 请求中使用 `enctype='text/plain'` 会导致 PHP 出现问题?的详细内容。更多信息请关注PHP中文网其他相关文章!