PHP header ("Refresh") sorunları

3 Cevap php

Ben gibi bazı kod var:

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

Bu, insanların Twitter'da (bir HooteSuite istemci yayınlanmıştır) aracılığıyla bu url ziyaret ettiğiniz dışında, çalışıyor. Görünüşe göre, tüm tarayıcılarda other IE daha bu düzgün çalışır. IE, HooteSuite linkten, bu düzgün yenileme etmez; doğrudan bir bağlantı yok.

Neden?

3 Cevap

Bu çıkıyor, çünkü IE üçüncü taraf çerez (sitemiz) güven olmaz, URL biz setleri bir cookie kullanarak konum ve HootSuite bir çerçeve oluşturur. Yani sayfaya bazı framebuster kod eklendi, ve tarayıcı IE ise "hemen" ne o tetiklenebilir ettik. Kod aşağıda:

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

Belki bu orada diğer bazı rasgele kullanıcı bir gün yardımcı olacaktır.

Ben her zaman kaçınılmaz WebTV kullanıcı ile sorunları önlemek için bir arada savunan:

  • (Yaptığınız gibi) Kafa
  • Meta tag (HTML kafasına)
  • Javascript zaman aşımı

Twitter istemcisi bir bağlantı kısaltıcı kullanıyorsa, yönlendirme türü umulmadık bir şekilde IE etkileyen olabilir.

Örneğin, yerine konum başlığını ayarlama yorgun olması.

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