即使CONTENT_LENGTH正确,$ _POST也是空的

问题描述:

我有一个HTTP POST指向两个不同的地方。

第一个位置由第三方解决方案处理,所以我看不到他们如何处理数据(他们必须是因为值正在通过,我看到了结果)。

我的位置,我有一个NGINX服务器(从来没有任何问题,以前有很多使用)。我使用PHP 读取POST数据,和我预期的内容是在$_POST变量作为POST是$_SERVER["CONTENT_TYPE"] => "multipart/form-data"

不过,即使类型和$_SERVER["CONTENT_LENGTH"]是否正确,我越来越没有什么我的$_POST,$_REQUEST,当检查file_get_contents('php://input')时也没有任何内容。

身体是非常小的json lump(< 1k)。总是一个对象数组。

,看看有什么在阵列我用echo json_encode(array("GET" => $_GET, "POST" => $_POST, "REQUEST" => $_REQUEST, "SERVER" => $_SERVER))

我已经用完了什么现在检查的想法。

该条目$_SERVER["PHP_SELF"]有可能是由于路径定界符而造成的一种奇怪的gar??

+0

'php:// input'不可用'enctype =“multipart/form-data”'。礼貌:[SOFPOST-2731297](http://stackoverflow.com/questions/2731297/file-get-contentsphp-input-or-http-raw-post-data-which-one-is-better-to/2731431# 2731431)。 顺便说一句,你是如何检查'$ _POST'或'$ _REQUEST'数组内的值 – 2013-05-09 12:25:36

How to post JSON to PHP with curl导致我的解决方案:

不要忘了将它发送的application/json

一旦我做到了,该数据在身体都挺过来了。这对我有帮助,但我仍然好奇为什么第三方接收机可以像原来那样处理数据。