6

以下形式$_POST在 IE9 上导致一个空变量。

<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>

该表单在 Firefox 和 Chrome 上完美运行。所有变量都出现在$_POST变量中,没有问题。

然而,在 IE9 上,表单已正确提交,但$_POST它是空数组。即,在 login.php 中:

print_r($_POST);

打印空数组。我试图弄清楚 IE9 可能有什么不同,这使它的行为与 Firefox 和 Chrome 不同,但我无法弄清楚。

我发现提到 Apache 下的一些模块会导致人们出现问题,但我正在运行IIS7,而不是 Apache,所以不是这样。Ruby 论坛上有人提到在注册表中将 DisableNTLMPreAuth 设置为 1,但这也没有修复它。

任何帮助表示赞赏。

4

4 回答 4

1

接受字符集在 Internet Explorer 中不受支持。删除它,看看是否可以解决您的问题。

于 2012-06-27T10:45:47.483 回答
0

我认为这与双重打击有关 - 即 IE 正在以某种方式重新加载页面。您是否有一些客户端的东西(jQuery?)会意外地重新加载页面作为错误?尝试发布到一个全新的页面并<?PHP die ('<pre>'.print_r($_REQUEST,true).'</pre>');?>在第一行写下,看看会发生什么。

于 2012-06-19T17:25:10.913 回答
-1

请输入表单的“名称”属性。

<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>
于 2012-06-19T04:04:02.777 回答
-1

原因是您没有维护会话。在 Firefox 和 Chrome 中,它们非常聪明,它们维护会话而不考虑开发代码,这给用户带来了好东西。但是在 IE6-9 中,IE 无法维护会话,开发人员必须检查它,如果会话没有维护,则加载的每个页面都是一个新会话,因此没有帖子。

于 2012-06-19T04:19:37.607 回答