PHP$\u POST在IE9和IIS7上为空

PHP$\u POST在IE9和IIS7上为空,php,forms,iis,post,Php,Forms,Iis,Post,以下表单导致IE9上的$\u POST变量为空 <form id='login' action='login.php' method='POST' accept-charset='UTF-8'> <input type='text' name="username" id='username' /> <input type='password' name='password' id='password' /> <input type="text" nam

以下表单导致IE9上的
$\u POST
变量为空

<form id='login' action='login.php' method='POST' accept-charset='UTF-8'>
<input type='text' name="username" id='username'  />
<input type='password' name='password' id='password' />
<input type="text" name="store" />
<input type='submit' name='Submit' value='Submit' />
</form>
打印空数组。我正试图找出IE9与Firefox和Chrome的不同之处,但我无法理解

我发现提到Apache下的某个模块导致了人员问题,但我运行的是
IIS7
,不是Apache,所以不是这样。Ruby论坛上有人提到在注册表中将DisableNTLMPreAuth设置为1,但也没有解决这个问题

非常感谢您的帮助。

请为表单输入“name”属性

<form id='login'  name='login' action='login.php' method='POST' accept-charset='UTF-8'>
<input type='text' name="username" id='username'  />
<input type='password' name='password' id='password' />
<input type="text" name="store" />
<input type='submit' name='Submit' value='Submit' />
</form>


原因是您没有维护会话。在Firefox和Chrome中,它们非常智能,无论代码的开发如何,它们都会维护会话,这给用户带来了好处。但在IE6-9中,IE无法维护会话,开发者必须检查会话,如果会话未维护,则加载的每个页面都是新会话,因此没有post。

我认为这与双击有关,即IE不知何故重新加载页面。您是否有一些客户端的东西(jQuery?)作为bug意外地重新加载页面?尝试发布到一个全新的页面,并在顶行写入
,看看会发生什么。

Internet Explorer不支持接受字符集。移除它,看看这是否解决了您的问题。

您是否尝试过输出phpinfo()?看看是否有任何请求变量正在填充,这会很有趣。例如,$\u请求在IE上打开developer comsole(按F12)并切换到网络选项卡。现在提交您的表单并查看显示的请求:这里提到的post值是(这意味着您的问题是服务器端的)还是缺少(问题是客户端的)。var\u dump($\u post)的输出是什么?谢谢你的想法。特别为IE开发者控制台干杯。我可以看到一篇文章在一瞬间就被发送了(而且我足够快,我可以看到相关的输入字段正在被发送)。发送POST后的一瞬间,它使用GET而不是POST加载PHP页面。我认为我们已经将问题缩小到了http equiv=“refresh”,这在目标页面上出错。这让它做了一个动作。谢谢大家!你可以/应该自己回答你的问题。然后接受你的答案,这样就会显示为已回答,解决方案会更好地记录下来,而不会隐藏在评论中。
<form id='login'  name='login' action='login.php' method='POST' accept-charset='UTF-8'>
<input type='text' name="username" id='username'  />
<input type='password' name='password' id='password' />
<input type="text" name="store" />
<input type='submit' name='Submit' value='Submit' />
</form>