从IE8发布到PHP会得到空白的$\u帖子

从IE8发布到PHP会得到空白的$\u帖子,php,internet-explorer-8,Php,Internet Explorer 8,我有一个简单的HTML表单,向php脚本发送post请求。在IE8中,表单只能间歇性地工作——PHP脚本在大多数情况下都会看到一个空的$\u POST变量 这是我的密码: <html> <head> <title>Post test</title> </head> <body style="text-align: center;"> <?php echo "<pre>".print_r($_POST, T

我有一个简单的HTML表单,向php脚本发送post请求。在IE8中,表单只能间歇性地工作——PHP脚本在大多数情况下都会看到一个空的$\u POST变量

这是我的密码:

<html>
<head>
<title>Post test</title>
</head>
<body style="text-align: center;">
<?php

echo "<pre>".print_r($_POST, TRUE)."</pre>";

?>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
<input type="text" name="name">
<input type="hidden" name="hidden" value="moo" >
<input type="submit" value="Search" >
</form>
</body>
</html>

后测试

听起来很奇怪。在IE的其他版本中也会发生这种情况吗

我无法告诉您问题是什么,但以下是我对如何诊断的建议:

  • 打印
    $\u REQUEST
    ,而不仅仅是
    $\u POST
    ,以查看数据是否通过其他方法输入

  • 使用类似或的工具精确跟踪浏览器实际发送的内容

  • Fiddler对我特别有帮助(主要是在调试Ajax代码时),它会准确地告诉您浏览器发布了什么。如果您的web服务器是localhost,那么您还可以使用Fiddler在PHP使用它之前跟踪接收到的内容。如果没有,您可以在服务器上使用wireshark,前提是您有权安装此类设备


    除了Fiddler之外,我还建议使用基于浏览器的工具,比如Firebug,但我不知道有哪一个适合IE的工具足够好(据我所知,IE开发工具没有提供请求和响应数据的详细信息)。

    我怀疑,当脚本告诉您$u POST为空时,您实际上并没有发布表单。您可以通过添加
    print($_SERVER['REQUEST_METHOD'])进行检查在您的
    打印后($\u POST)

    如果您在某个时间发布文件(即使用文件输入),请确保在
    元素中设置
    enctype=“multipart/form data”

    是否检查了生成的html?有没有可能echo
    $\u服务器['PHP\u SELF']
    没有生成您想要的输出,这会弄乱表单html,也会弄乱帖子?

    感谢大家参与进来

    事实证明,问题出在我启用的Apache模块中

    它是一个允许apache使用Windows身份验证通过其Windows用户id(mod_auth_sspi)识别用户的模块

    该影响是由模块中的已知错误引起的,但通过一个简单的额外指令,可以解决该问题,直到在下一次更新中添加修复程序,如下所述:


    我无法复制这个。我已经在这里点击按钮30秒了,从来没有看到过一个掉落的帖子。你确定你的IE设置或internet连接没有问题吗?你确定这是回发,而不仅仅是IE8不接受ENTER按钮作为提交的典型做法吗?(例如&)--也可以查看感谢寻找的人。这就是整个脚本-我将其复制到一个单独的文件中以确保!这不是一个网络问题,因为我在本地机器上用apache安装运行它。我正在点击提交按钮,而不是使用enter键。我意识到这是一个测试脚本,这并不能解决您的问题,但是
    $\u SERVER['PHP\u SELF']
    在这种情况下是不安全的。提醒一下。谢谢scoates-我不知道$_服务器['PHP_SELF']有什么问题-风险在哪里?你可以在IE中使用Firebug Lite,但我不确定它在这里有什么好处。谢谢spudley-我会尝试fiddler,看看这是否揭示了什么。这将是几天了,因为我周末回家-看这个空间。我已经这样做了,并要求_方法报告的方法为“后”-谢谢你的建议。然后似乎有什么讨厌的事情发生了。重新格式化并重新安装Windows?这仍然是惯常的方式吗?坦白地说,我已经重新格式化并安装了Linux,但是我们的IT人员对任何非M$的东西都会感到紧张。事实证明我们不能因为这件事责怪盖茨先生!谢谢-我已经检查过了,但是对于其他人来说,如果他们看到$U POST有问题,这是值得注意的