PHP: header ("Location ... aniden çalışması durdu

6 Cevap

Ben benim sunucu üzerinde çok basit bir php sayfası güncellendi:

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

ve işe durdu. (O kaynağın olmadan) bir boş sayfa sonuç olarak alıyorum.

Ben önceki url geri değiştirilmiş .. ve hala çalışmıyor.

Ne oluyor?

Teşekkürler

6 Cevap

<?php <-- check for whitespace before this (by popular demand)
   error_reporting(E_ALL); // report all error messages
   header("Location: http://www.google.com"); // leave a space between name and value
?> <-- remove this, or check for whitespace after it

Benim düşünce bir dönek boşluk karakteri açılış bir önce son kapanış etiketi or sonra, orada olduğunu.

Sen utf8 formatında ile kaydettiniz. Sonra çalışması gerekir, bom veya ANSI olmadan utf8 olarak dosyayı kaydedin.

Başlığında önce bu sayfada baskı şey varsa sorun olabilirdi. Ben başlığa sahiptir sayfası için UTF-8 kodlama varken Ya da bazen aynı problem vardı.

I had the same problem where redirects seemed to suddenly stop working.
It turned out to be a newline before the <?php tag, which I had accidentally added in some obscure include file I was using.

Ben gidermek için kullanılan bir yolu Google Chrome developer console olarak Network tab ile oldu. Benim dosyalarından birinde yanlış bir şey olduğunu söyledi ki, 200 OK önce orada bir yeni satır gördüm.

Ben bir sorun bu tür vardı. Ben kendi PHP MVC deseni kullanılarak yapıldı. Aslında hiçbir hata vardı, aniden, benim yönlendirmeler çalışmayı durdurdu. I belge ton okuyun. Ama sonunda, endeks sayfanın içine ob_start(); eklendi. Ve işe yaradı.

Not: Eğer yönlendirme önce tampon yıkanmalıdır. Aksi takdirde, yönlendiremez.

Ben henüz php ile çok iyi değilim ama.

Ben Yenile şey ekledi:

header("Refresh: 0; http://www.google.com");

And now it's working, but still it would be good to know how the first problem occured. /spellcheck/