PHP header(“Refresh”) problems

放肆的年华 提交于 2019-11-29 18:10:02

I always advocate a combination to avoid problems with the inevitable WebTV user:

  • Header (as you're doing)
  • Meta tag (in the HTML head)
  • Javascript timeout

If the Twitter client is using a link shortener, the type of redirect may be influencing IE in an unanticipated way.

It turns out that, because the URL we're using sets a cookie, and Hootsuite creates a frame, that IE won't trust the third party cookie (our site). So I've added some framebuster code to the page, and triggered it to happen "immediately" if the browser is IE. Code is below:

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

Maybe this will help some other random user out there some day.

Have you tired setting the location header instead, for example.

$url = "http://www.example.com/";
header("Location: " . $url);
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!