在IE6中使用@header()重定向后,整个页面变为空白

时间:2009-10-21 07:46:13

标签: redirect internet-explorer-6

这是一个登录页面。验证后,用户将被重定向到主页:

@header("Content-type: text/html; charset=utf-8");
@header('Location: index.php');
@header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
@header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past  

但如果IE6页面变成空白!怎么样?它只是第一次发生;之后它会正常工作!

4 个答案:

答案 0 :(得分:1)

为什么要抑制可能发生的警告/错误?我先说先摆脱@,然后告诉我们究竟发生了什么。

答案 1 :(得分:1)

如果已经发送了任何输出,

header()将不起作用。这包括空格,空行或其他。确保在调用header之前没有输出任何内容。

使用:

<?php
header('Location: index.php');
?>

不起作用

 <?php
header('Location: index.php');
?>

并删除@,它会占用任何有用的信息标题试图给你。

答案 2 :(得分:0)

您还可以使用客户端的javascript重定向:

而不是:

@header('Location: index.php');

客户端重定向:

echo "<script>document.location.replace('index.php');</script>";

答案 3 :(得分:0)

我一直在寻找一个类似问题的答案给你一个小时左右。 IE6似乎有拉链内容的问题。简单地在我们的服务器上禁用mod_deflate修复了IE6的问题。特别是版本6.0.29似乎表现出这个错误。

查看http://www.contentwithstyle.co.uk/content/moddeflate-and-ie6-bug