php $ _POST数组在表单提交时为空?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

我有一个自定义的内置CMS,它可以在我的开发盒(Ubuntu / PHP5 + / MySQL5 +)上完美工作。

我只是将它移动到我的客户端的生产框中,现在所有表单提交都显示为空的$ _POST数组。

我发现了一个技巧来验证数据实际上正在被传递file_get_contents('php://input');并且数据在那里显示得很好 - $_POST/ $_REQUEST数组总是空的。

我也通过firebug(application/x-www-form-urlencoded; charset=utf-8)验证了内容类型标头是否正确。

无论表单是通过AJAX提交还是通过常规表单提交,都会发生此问题。

提问于
用户回答回答于

这是另一个可能的原因 - 我的表单没有WWW提交给domain.com。我已经设置了一个自动重定向来添加“WWW”。$ _POST数组在该过程中被清空。所以要解决这个问题,我只需要提交到www.domain.com

用户回答回答于

当使用JSON内容类型时,$ _POST数组不会填充(仅用于我认为的多部分表单)

以下是解决问题的方法:

$rest_json = file_get_contents("php://input");
$_POST = json_decode($rest_json, true);

扫码关注云+社区