PHP header çalışmıyor yönlendirmek

8 Cevap php

Bunu daha önce örtülü olmuştur biliyorum ama bu bir cevap bulamıyorum

Ben her zaman bu kullandık;

header("Location: http://www.website.com/");
exit();

Bu her zaman benim geçerli projede çalıştı ve aniden benim tarayıcılarda herhangi bir çalışma değil

Ben sorunu anlamaya istiyorum ve kullanmak yerine bunu düzeltmek istiyorum

echo "<script type='text/javascript'>window.top.location='http://website.com/';</script>";

Ben de hata raporlama etkin ve hiçbir hataları gösterir

// SET ERROR REPORTING
error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
ini_set('display_errors', TRUE);

Any ideas why it will not work?

8 Cevap

Deneyin:

error_reporting(E_ALL | E_WARNING | E_NOTICE);
ini_set('display_errors', TRUE);


flush();
header("Location: http://www.website.com/");
die('should have redirected by now');

Ne olsun bakın. Eğer yanlışlıkla bir 'zaten gönderildi başlıklar' hata ne olduğunu .. bildirimler ve uyarılar HARİÇ tüm hatalar için soruyorsun, çünkü sizin error_reporting () çağrı ^ (xor) kullanmanız gerekir.

Edit:

Ayrıca sağ başlığının () çağrısı yukarıdaki floş () koymayı deneyin.

Konumu ve http ilk h Arasındaki Uzay kaldırmayı deneyin.

header("Location: http://www.website.com/");
exit();

dönüşür

header("Location:http://www.website.com/");
exit();

Benim WAMP Server üzerinde bu sorunu vardı.

Bu sorun olmamalı rağmen, bu dikkate alınarak PHP belgelerinde belgelenmiştir nasıl. Ama muhtemelen yine de denemek gerekir. Ben bu durumlarda bir dizi benim için çalıştı biliyorum.

Bu deneyin. benim için çalıştı.

echo "<meta http-equiv='refresh' content='0;url=http://www.yoursite.com'>";

Ayrıca başlık işlevini kullanırken zaman müşteriye yazılı herhangi bir metin (hatta bir boşluk) denilen önce ilk şey olabilir, hiçbir boşluk olmaktan çıktı bile önce inci Aramadan önce var olduğunu tekrar kontrol var

<?php

Eğer sayfayı ziyaret ettiğinizde tam olarak ne olur? Firebug veya HTTP başlıklarını analiz ve yönlendirme gerçekten olmuyor ve Location başlık gerçekten mevcut olup olmadığını kontrol etmek için izin veren herhangi bir başka aracı deneyebilirsiniz.

Ayrıca geçerli bir konuma yönlendirme ve konumu uygun 404 vardır ve 500 hata mesajları / sayfalar kurulum olduğunu doğrulamalısınız. Bu sadece kötü bir yer yönlendiriyorsunuz olduğunu olabilir.

Bu garip bir çözüm olabilir ama bu deneyin, ANSI utf8 den sayfa kodlamasını değiştirmek ve çalışacaktır olabilir.

Herhangi bir metin düzenleyicisi kullanın ve ANSI kodlama olarak sayfayı kaydedin ve çevrimiçi bir sunucuya yükleyin.

Garip, ama php boş satırları benim için çalıştı kaldırarak: - \

code before:

<?php

header("Location: http://www.website.com/");

?>

code that worked:

<?php header("Location: http://www.website.com/"); ?>