我有一个简单的HTML表单,向php脚本发送一个帖子请求。在IE8中,表单只能间歇性地工作 - 大多数时候PHP脚本看到一个空的$ _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>
有时print_r会给出你期望的响应(即它填充了表单中的数据),大部分时间都是空的。
无法使用POST对于Web应用程序来说有点问题 - 任何人都知道发生了什么,以及如何解决它?
答案 0 :(得分:2)
感谢大家趟这个。
事实证明问题出在我启用的Apache模块中。
这是一个允许apache使用Windows身份验证通过Windows用户ID识别用户的模块 - mod_auth_sspi
效果是由模块中的已知错误引起的,但是有一个简单的额外指令可以解决,直到在下次更新中添加修复,如下所述:
http://sourceforge.net/projects/mod-auth-sspi/forums/forum/550583/topic/3392037
答案 1 :(得分:1)
听起来非常奇怪。是否也会在其他版本的IE中发生?
我不能告诉你问题是什么,但这是我对如何诊断的建议:
答案 2 :(得分:0)
我怀疑当脚本告诉你$ _POST为空时,你实际上并没有POST表单。您可以在print($_SERVER['REQUEST_METHOD']);
print_r($_POST);
进行检查
答案 3 :(得分:0)
如果您在某些时候发布文件(例如使用文件输入),请确保在enctype="multipart/form-data"
元素中设置<form>
。
答案 4 :(得分:0)
你检查过生成的HTML吗?是否有可能echo $_SERVER['PHP_SELF']
没有产生你所追求的输出,这会混淆html格式,这会弄乱POST?