PHP标题(“刷新”)问题

时间:2009-12-10 21:58:54

标签: php header refresh

我有一些代码:

header('Refresh: 15; url=' . $url);

这种方法很好,除非人们通过Twitter访问此网址(从Hootesuite客户端发布)。显然,在所有浏览器中其他而不是IE,这可以正常工作。使用IE,从Hootesuite链接,这不能正确刷新;直接链接。

为什么?

3 个答案:

答案 0 :(得分:2)

我总是提倡组合以避免不可避免的WebTV用户出现问题:

  • 标题(正如你正在做的那样)
  • 元标记(在HTML头部)
  • Javascript超时

如果Twitter客户端使用的是链接缩短程序,则重定向的类型可能会以一种意料之外的方式影响IE。

答案 1 :(得分:1)

事实证明,因为我们正在使用的URL设置了一个cookie,而Hootsuite创建了一个框架,IE将不会信任第三方cookie(我们的网站)。所以我已经在页面中添加了一些framebuster代码,并且如果浏览器是IE,则会立即“立即”触发它。代码如下:

<meta http-equiv="refresh" content="15;url=<?php echo $url ?>" />
<script type="text/javascript">
var timeout = 1;
if (navigator.userAgent.match(/MSIE/)) { timeout = 1; } else { timeout = 14500; }
setTimeout('if (top != self) top.location.replace(self.location.href)', timeout);
</script>

也许有一天这会帮助其他一些随机用户。

答案 2 :(得分:0)

例如,您是否厌倦了设置位置标题。

$url = "http://www.example.com/";
header("Location: " . $url);