PHP Header()重定向触发IE9怪癖模式

PHP Header()重定向触发IE9怪癖模式,php,internet-explorer,quirks-mode,Php,Internet Explorer,Quirks Mode,如果我使用标题('位置:http://www.example.com/test.php' );将用户发送到test.php。我在IE9控制台中注意到: HTML1113: Document mode restart from Quirks to IE9 Standards test.php HTML1115: X-UA-Compatible META tag ('IE=9') ignored because document mode is already finalized. test.

如果我使用
标题('位置:http://www.example.com/test.php' );
将用户发送到
test.php
。我在IE9控制台中注意到:

HTML1113: Document mode restart from Quirks to IE9 Standards 
test.php

HTML1115: X-UA-Compatible META tag ('IE=9') ignored because document mode is already finalized. 
test.php
这完全弄乱了我在
test.php
上的代码

问题

我已经在使用
,但我猜使用PHP header()重定向会导致出现问题

当使用PHP header()重定向用户时,有没有办法阻止IE9进入怪癖模式

其他信息


它进入了怪癖模式,又回到了标准模式,这似乎破坏了我在页面上的代码


用户从test.php开始,单击验证码上的submit,该验证码将发布到verify.php,该验证码的开头有

使用php来回送元刷新重定向而不是php标头,似乎已修复了该问题。所有的代码都可以工作,没有去怪癖模式和返回IE9模式,并且元不会被忽略

其他信息


我亲自和一位软件/网络程序员谈过,他不知道为什么会发生这个错误。然而,他的观点是,如果meta refresh可以代替php头工作,那么使用它也没有问题。

我对此思考了很多,并有一个想法:

对于不是以
开头的任何页面,IE9都将跳入怪癖模式

标题(…)
重定向之后仍然可以有进一步的输出,这将被视为一个页面

所以。。。如果发送
头()
后有任何输出,并且该输出不是以有效的
开始的,IE9可能会跳转到怪癖模式

在PHP中,如果代码在
header()
调用之后继续运行,并且后续代码中的某些内容生成某种类型的输出,则可能发生这种情况

如果发生了这种情况,并且您不需要代码在重定向后继续运行(这是不寻常的),那么添加对
die()的调用标题()之后的code>应该修复它


希望这能有所帮助。

我在进入标准模式时读到了这篇文章。你的
header()
代码在哪里?事实上,恰恰相反。文档模式正在从怪癖走向IE9标准(当它找到doctype时),实际的问题是,为什么它对您很重要?你为什么要发送回复邮件?HTTP重定向不应该包含HTML页面。它进入了Quirks模式和back to Standard模式,这似乎破坏了我在页面上的代码。用户从test.php开始,单击captcha上的提交,该captcha发布到verify.php-其中有@mario-当它从怪癖回到标准时,我的一些代码不再在test.php上工作。如果这不是一个好的解决方案,请评论或发布您的答案。这是一个非常好的替代解决方案。它并没有回答为什么问题会首先发生的问题,但如果你有一个可行的替代方案,我想你现在不必太在意。谢谢你的投入。我尝试添加
die()
,也尝试了
exit()
,但两者都不起作用。@Legendre-哦,值得一试。:-)值得一提的是,
die()
exit()
在PHP中是相同的,因此如果其中一个不起作用,那么另一个就没有希望了(如果您查看PHP源代码,
die()
函数是一个简单调用
exit()
函数的一行程序)