Проблемы с заголовком PHP («Обновить»)

У меня есть код вроде:

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

Это прекрасно работает, за исключением случаев, когда люди посещают этот URL через Twitter (размещается у клиента Hootesuite). По-видимому, во всех браузерах, кроме IE, это работает правильно. С IE, из ссылки Hootesuite, это не обновляется должным образом; прямая ссылка.

Зачем?

Я всегда выступаю за комбинацию, чтобы избежать проблем с неизбежным пользователем WebTV:

  • Заголовок (как вы это делаете)
  • Метатег (в заголовке HTML)
  • Время ожидания Javascript

Если клиент Twitter использует сокращение ссылок, тип перенаправления может повлиять на IE непредвиденным образом.

Оказывается, поскольку URL-адрес, который мы используем, устанавливает cookie, а Hootsuite создает фрейм, этот IE не будет доверять стороннему файлу cookie (наш сайт). Поэтому я добавил на страницу код фреймбастера и вызвал его «сразу», если браузер является 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> 

Возможно, когда-нибудь это поможет некоторым другим случайным пользователям.

Например, устали ли вы, например, заголовок местоположения.

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