php - PHP 中的 POST 和原始 POST 有什么区别?

标签 php html forms post

看完答案我有这个问题here , 到底有什么区别?

是否可以使用 html 提交原始 POST?

最佳答案

我们可以将表单提交分为三种情况:

  1. 提交内容类型为 application/x-www-form-urlencoded
  2. 提交内容类型为multipart/form-data
  3. 其他提交。

在情况 1 和 3 中,$HTTP_RAW_POST_DATA 包含原始发布数据(除非选项是 always_populate_raw_post_data 设置为 false,在在第 1 种情况下,$HTTP_RAW_POST_DATA 为空,即客户端(通常是浏览器)发送的数据。在情况 1 中,数据具有如下形式:

key1=value1&key2=value2&key3[]=value3.1&key3[]=value3.2

PHP 自动解析它,所以 $_POST 变成:

$_POST = array(
    "key1" => "value1",
    "key2" => "value2",
    "key3" => array("value3.1", "value3.2");
)

原始数据的内容也可以通过 php://input 访问,即使在 always_populate_raw_post_data 设置为 false 的情况 1 中也是如此>。特别是,file_get_contents("php://input") 给出了 $HTTP_RAW_POST_DATA 拥有或将拥有的相同数据。

在情况 3 中,POST 数据是任意的,$_POST 将是一个空数组,$HTTP_RAW_POST_DATA 将始终被填充。

案例 2 比较特殊。在这种情况下,PHP 将解析数据并且 $_POST 将获取不是上传文件的字段内容,而是 php://input$ HTTP_RAW_POST_DATA 将不可用。

关于php - PHP 中的 POST 和原始 POST 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3173547/

相关文章:

javascript - 使用 ember-cp-validations 验证可选电子邮件

php - WordPress PHP Hack 中不允许使用 HTML

javascript - window.open() 在 JS 函数中无法正常工作

javascript - 用于打开网页、编辑输入字段和提交表单的脚本

PHP : Multiple cURL with same URL

javascript - 在 AngularJS 中选择选项返回对象而不是值

php - 如何从 MySQL 查询(多级数组)中获取变量?

php - MYSQL语句搞不明白是怎么回事

php - 在 Magento 中复制和粘贴类别

html - 在 Node.js 中将 HTML 作为图像渲染到缓冲区中