我正在用Java应用程序向一个.php文件发送POST数据,但是该.php文件无法接受POST数据。file_get_contents('php://input')为空, $_POST也是空的。我知道问题不在于.php文件或Java应用程序,因为我使用不同的主机进行测试,它可以正常工作。是否有我需要更改的php.ini设置或设置遗漏了?
我也遇到了这个问题。对于后来的访问者,我的问题是在URL中缺少尾部斜杠。例如...
http://someplace.com/cheeseburger
本应该是...
http://someplace.com/cheeseburger/
在我的情况下,这导致帖子发布失败。
如果HTTP消息中Content-Type为空或无法识别,则PHP $_POST数组为空。如果您无法发送Content-Type,则可以将以下内容添加到您的PHP中:
if(empty($_SERVER['CONTENT_TYPE']))
{
$_SERVER['CONTENT_TYPE'] = "application/x-www-form-urlencoded";
}
你还可以检查一下是否在你的php.ini文件中设置了正确的选项。
; Maximum size of POST data that PHP will accept.
post_max_size = 8M
如果 post_max_size 的值为 0,PHP 将不会填充 $_POST 变量。variables_order = "EGPCS"
如果您没有在其中添加P,则$_POST也不会被设置。
我遇到了同样的问题。问题出在http://和https://上。
我的问题是输入名称重复。
例如: /input name="test" type="text" / /input name="test" type="text" /
每个必须有不同的名称 例如: /input name="testA" type="text" / /input name="testB" type="text" /
我的问题突然出现了。 我使用了一个Apache的hack来隐藏扩展名,所以我只需要从文件名中删除.php就可以了。
/* from: */ action = "folder/filename.php"
/* to: */ action = "folder/filename"
$_FILES
而不是$_POST
。 - Kumar