【问题标题】:PHP $_POST is empty on IE9 and IIS7PHP $_POST 在 IE9 和 IIS7 上为空
【发布时间】:2012-05-21 14:44:50
【问题描述】:

以下形式会导致 IE9 上出现空的 $_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>

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

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

print_r($_POST);

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

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

感谢任何帮助。

【问题讨论】:

  • 你试过输出phpinfo()吗?看看是否有任何请求变量正在填充会很有趣。例如,$_REQUEST
  • 在 IE 上打开 developer-comsole(按 F12)并切换到网络选项卡。现在提交您的表单并查看显示的请求:是那里提到的后值(这意味着您的问题是服务器端的)还是它们丢失了(问题是客户端的)。
  • var_dump($_POST); 的输出是什么?
  • 感谢您的想法。尤其为 IE 开发者控制台干杯。我可以看到一瞬间发送了一个 POST(而且我的速度足够快,我可以看到正在发送相关的输入字段)。发送 POST 后的一瞬间,它使用 GET 而不是 POST 加载 PHP 页面。我认为我们已经将问题缩小到目标页面上出错的 http-equiv="refresh"。这导致它执行 GET。谢谢大家!
  • 您可以/应该自己回答您的问题。然后接受您的答案,这样就会显示为已回答,并且解决方案有更好的文档记录,而不是隐藏在 cmets 中。

标签: php forms iis post


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-05-02
          • 1970-01-01
          • 2019-12-29
          • 2023-03-09
          • 1970-01-01
          • 2016-06-20
          • 1970-01-01
          • 2016-05-02
          相关资源
          最近更新 更多