Headers already sent hatası ve çözümü?

Sorunun tanımı: Blogunuza ulaşmak istediğinizde tarayıcı pencerenizde şöyle bir hata görüyorsünüz:

Warning: Cannot modify header information - headers already sent by (output started at...

Sorunun nedeni ve çözüm yolları:

Bu sorun genellikle bir php kodu başlangıç etiketinden () sonra boşlukların, yeni satırların veya söz dizimini bozan başka karakterlerin bulunuyor olmasından kaynaklanır. Sorun çoğu kez php koduna, bu iş için uygun olmayan düzenleyiciler kullanılarak, müdahale edilmesi ile ortaya çıkar.

Her ne kadar sorun kendisini özellikle wp-config.php dosyasında gösterse de, başka dosyalardan da kaynaklanabilir. Bu yüzden, hataya neden olan dosyanın adınıda içerisinde barındıran, hata mesajını kontrol etmekte fayda vardır. Sorunun en mantıklı çözümü hataya neden olan dosyanın WordPress kurulum paketinden yenisinin çıkarılması ve sorunlu olanı ile değiştirilmesi olacaktır. Eğer bir şekilde bunu gerçekleştirme olanağınız yoksa aşağıdaki basamakları takip ederek sorununuza çözüm oluşturabilirsiniz.

Unutmayın, sizin bir insanın bakışı ile dosya kodu içerisinde sorun yaratabilecek herhangi bir unsur görmüyor oluşunuz hatanın olmadığı anlamına gelmez. PHP dosyayı bir insan gibi değil makine gibi ele alır.

1. Hata mesajında belirtilen dosyayı sunucunuzdan indirin.
2. Dosyayı bir metin editörü ile açın. Fakat burada kullanacağınız metin editörünün benzer dosyalar için geliştirilmiş bir yazılım olmasına dikkat edin. (MS Word veya benzeri yazılımlar bu iş için uygun değildir. Tüm Windows kurulumlarında bulunan Notepad veya UltraEdit işinize yarayabilir).
3. Kodun ilk karakterlerinin 4. Son karakterlerinin ?> ile bittiğinden emin olun.

PHP kodunu barındıran dosyanın sonunda herhangi bir boşluk kalmadığından emin olmak için şu yolu izleyin:

1. İmlecinizi ? ve > arasına getirin,
2. Sonra klavyenizdeki DELETE tuşuna basın ve
* (MAC kullanıcılarına küçük bir not: PC'deki "DELETE" tuşu imlecin sağındaki karakterleri silmeye yarayan tuştur)
3. En az 15 saniye basılı tutun.
4. Bu işlem sonunda > yazın ve
5. Başka hiç bir tuşa basmadan kaydedin.
6. Unutmayın, eğer kaydetmeden önce başka herhangi bir tuşa basacak olursanız hatanın tekrar ortaya çıkmasına neden olabilirsiniz!

Hata mesajının incelenmesi:

Eğer hata mesajı:

Warning: Cannot modify header information - headers already sent by (output started at /path/blog/wp-config.php:34) in /path/blog/wp-login.php on line 42

şeklindeyse problem, wp-login.php dosyasının 42. satırından değil, wp-config.php dosyasının 34. satırından kaynaklanıyordur. Bu durumda wp-login.php hatanın kaynağı değil, ondan etkilenen konumundadır.

Eğer hata mesajı:

Warning: Cannot modify header information - headers already sent by (output started at /path/wp-admin/admin-header.php:8) in /path/wp-admin/post.php on line 569

şeklindeyse problem, post.php dosyasının 569. satırından değil, admin-header.php dosyasının 8. satırından kaynaklanıyordur. Bu durumda post.php hatanın kaynağı değil, ondan etkilenen konumundadır.