远程提交时PHP $ _POST为空

时间:2013-06-07 23:00:08

标签: php apache ubuntu

如果我将数据发布到我的Web服务器上的测试脚本(来自远程源),则$ _POST数组为空,但HTTP_RAW_POST_DATA包含已发布的信息。

使用表单在本地发布的数据可以正常工作。

服务器是Ubuntu 12.04 / Apache / PHP 5.3.10,它是标准版本。

更新

我用它来测试端点https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo/

这是我正在实施的REST服务器https://github.com/philsturgeon/codeigniter-restserver。它已经安装在标准的LAMP堆栈上,并且安装了新的codeigniter。

没有重定向发生。

2 个答案:

答案 0 :(得分:1)

你确定你没有得到某种重定向吗?例如,您将发布的数据发送到http://somedomain.com,它会自动将您重定向到https://somedomain.comhttp://www.somedomain.com ...您将以这种方式丢失发布数据。

答案 1 :(得分:1)

<强> 1 即可。 $ _POST包含发布到脚本的URL编码(应用程序/ www-url编码)变量,PHP会为您解码它们。在处理HTML FORM数据时使用这个。

<强> 2 即可。 $ HTTP_RAW_POST_DATA - 获取原始POST数据,您需要在编写API时使用它,并且需要XML无法解码为$ _POST的XML / JSON / ...输入。