Php 已设置内容类型和内容长度,但$\u POST数组为空

Php 已设置内容类型和内容长度,但$\u POST数组为空,php,linux,Php,Linux,我在本地服务器上安装了一个相当新的apache/php,该服务器运行PHP5.3.8和Zend Engine 2.3.0以及eAccelerator、Xdebug和Suhosin。除了一个重要的帖子外,一切都很好。每次以post形式提交表单时,都没有数据通过。(print\r($\u POST)返回一个空白数组。) 我还在$服务器上进行了打印,注意内容类型被正确设置为application/x-www-form-urlencoded,内容长度被适当设置,甚至根据提交前在表单中输入的信息长度而变化

我在本地服务器上安装了一个相当新的apache/php,该服务器运行PHP5.3.8和Zend Engine 2.3.0以及eAccelerator、Xdebug和Suhosin。除了一个重要的帖子外,一切都很好。每次以post形式提交表单时,都没有数据通过。(print\r($\u POST)返回一个空白数组。)

我还在$服务器上进行了打印,注意内容类型被正确设置为application/x-www-form-urlencoded,内容长度被适当设置,甚至根据提交前在表单中输入的信息长度而变化

也就是说,以下所有代码都不返回任何内容:

var_dump($_POST);

$data = file_get_contents('php://input');
var_dump($data);
在阅读了通过其他问题可以找到的所有内容后,我检查了各种php.ini设置,并查看了phpinfo()列表,所有与post相关的变量似乎都设置正确,并且足够大,至少可以处理带有两个文本输入框的表单


谢谢你的帮助

没有进一步的信息,我只能给出一些非常一般的说明:

  • 验证表单元素所具有的
    操作
    方法
    属性的值,或者以其他方式确保它正在执行预期的操作。(方法和动作属性都很重要。)
  • 确保您已连接到web服务器,并且没有应用程序防火墙过滤POST请求,包括硬件和软件
  • 通过在本地网络或计算机上使用wireshark拦截请求,确保请求格式正确。使用wireshark和其他工具跟踪请求的去向,并确保请求到达
  • 登录到服务器并查看其日志。确保您正在接收请求。如果没有,请检查本地应用程序防火墙或其他拦截请求的工具(如mod_security)。如果是这样,请从服务器的角度查看预处理和后处理请求。确保目标值与步骤1中的
    操作值一致
  • 随机猜测或询问系统管理员

  • 非常感谢。我几乎已经转到了第5步,但我担心我错过了一些相当明显的东西。我一直在使用一个表单进行测试,该表单可以在没有帖子信息的情况下正确重定向到不同的页面。如果我将方法从post更改为get,则可以从$\u get或$\u请求检索信息。我刚刚下载了wireshark,可以看到一个格式完美的服务器POST请求。我猜已经安装了一些额外的工具,并将在今天晚些时候测试更多。谢谢你的回复!