Php Header Fonksiyonu Yönlendirme Sorununun Çözümü

Biraz şöyle internette gezindiğimiz de bu sorunu sıkça görüyoruz. Zaman zaman bende karşılaşıyorum. Localhost üzerinden bir script çalışması yaparken herhangi bir sorun yok ancak scripti sunucuya yüklediğinizde header yönlendirmelerinin çalışmadığını fark ediyorsunuz 🙂 İşte o an ki hissiyatınızı çok iyi biliyorum.

Şimdi gelelim bu problemin çözümüne. Yine bir çok problemde olduğu gibi bu sorun bir çok sebepten kaynaklanmış olabilir. Ben sırayla bu problemin çözüm yöntemlerini yazacağım.

Warning: Cannot Modify Header Information- Headers Already Sent by (output started at /home/content/84/…/searchpage.php:1)

Yukarıda ki gibi bir hata alıyor olmanız muhtemel. Genelde bu hatayı verir. Ancak bazen sunucunun hata gösterme özelliği kapalı olduğu zaman karşınıza hata çıkmayabilir. Şimdi temel olarak şuradan başlayalım.

Php header yönlendirmelerinin çalışabilmesi için projenin en başına ve ne sonuna tamponlama için bazı kodlar eklememiz gerekir.

Projenin en başına;

<?php
ob_start();
?>

Projenin en sonuna;

<?php
ob_end_flush();
?>

 

Bu fonksiyonlar sayfanın en başına ve en sonuna eklendikten sonra yüksek ihtimalle sorununuz ortadan kalkacaktır. Ancak dikkat edilmesi gereken husus şudur ki gerçekten sayfanın en başına eklenmeli 🙂

Yukarıda resimde olduğu gibi sayfamıza ayar.php dosyasını include etmişiz. Eğer include kodunu ob_start(); kodundan önce eklerseniz header fonksiyonlarınız yine çalışmayabilir. Nedendir bilinmez header bu konuda baya hassas 🙂

Bütün bu işlemleri gerçekleştirdiniz ancak yinede header yönlendirme işlemi yapamıyor musunuz? O halde denemeniz gereken bir kaç yöntem daha var.
Öncelikle header kodunuzu etkileyecek bütün sayfaları kontrol etmeniz gerekiyor. Örnek veriyorum bir kod bloku için <?php etiketini açmışsınız ancak kapatmayı unutmuşsunuz. Bu artık php’nin yeni sürümleri için bir sorun teşkil etmiyor. Yani sayfalarınız herhangi bir problem olmadan çalışacaktır. Ancak header yönlendirme fonksiyonu için problem olabilir. O yüzden bu şekilde bir kullanım tarzınız varsa düzeltmenizi öneririm.

Onun dışında sayfanızın kodlama biçimini kontrol etmeniz gerekiyor. UTF-8 olarak kodlanmalı. Ancak UTF-8 BOMLU olmasına dikkat edin. UTF-8 BOMSUZ olarak kodlandıysa yine header yönlendirme fonksiyonunuz çalışmaya bilir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Back To Top