Warning: cannot modify header information – headers already sent by Hatasının Çözümü

Warning: cannot modify header information – headers already sent by Hatasının Çözümü

Küçücük bir yanlışlığın WordPress sitenizi tamamen işlevsiz hale getirebilmesi ne kadar komik. Tabi ki meşhur Warning: cannot modify header information – headers already sent by pluggable.php WordPress hatasından bahsediyoruz. Eğer bu hataya takılmış durumdaysanız, doğru yere geldiniz. Bu WordPress rehberinde bu hatanın en başta niçin ortaya çıktığını konuşarak sorunu kesin olarak giderebilecek çözümlere göz atacağız.

Nelere ihtiyacınız var

Bu rehbere başlamadan önce aşağıdakilere ihtiyacınız olacak:

  • Hosting kontrol paneline veya FTP’ye erişim

Niçin “Cannot modify header information – headers already sent by” hatası alıyorsunuz

Öncelikle hatanın bir örneğine bakarak daha iyi anlamakla başlayalım. Bu hata genellikle şu şekilde ortaya çıkıyor:

Warning: Cannot modify header information – headers already sent by (output started at /public_html/wp-content/plugins/my-plugin/my-function.php:#) in /public_html/wp-includes/pluggable.php on line #

Gördüğünüz üzere hata da iki dosyanın adı geçiyor. Dosyalardan ilki (bizim örneğimizde /public_html//wp-content/plugins/my-plugin/ klasöründeki function.php dosyası) bu hatanın baş sorumlusu. Bu özel kodumuz WordPress’in sağladığı esas işlevleri değiştirmemizi sağlıyor. Bu bahsettiğimiz esas işlev, pluggable.php (her WordPress kurulumunda aynı şekilde bulunan çekirdek bir dosyadır) dosyası. Esasında ilk dosyada, ikinci dosyanın düzgün şekilde çalışmasına mani  olan bir sorun bulunuyor.

Bu hatanın başlıca sebebi ilk dosyanın içinde bulunan boşluklardır. Bunlar dosyanın en üstünde, altında veya arada herhangi bir yerlerde hatta <?php and?> PHP etiketlerinin arasında bulunabilen boşluklardır. Aslında programcılar kod yazarken yanlışlıkla fazla boşluk koyabileceğinden (ve genellikle koyduklarından) bu hata sandığınızdan çok daha yaygındır. Hatada bulunan line # problemin tam olarak nerede doğduğuna işaret etmektedir ve bu sayede büyük uğraş vermeden sorunu kaldırmanıza yardımcı olur.

Cannot modify header information – headers already sent by error hatasını düzeltme

Şimdi bu hataya neyin sebep olduğunu bildiğinize göre tamamen ortadan kaldırmaya geçebilirsiniz. Sizlere bu problemi ortadan kaldırmanın iki farklı yöntemini göstereceğiz. Öncelikle ayrı ayrı deneyebilirsiniz ancak sorun çözülmemişse verdiğimiz sırayla deneyebilirsiniz.

Seçenek 1 – Bozuk dosyaları düzenleme

Warning: cannot modify header information hatasını çözerken ilk seçeneğiniz sorunlu dosyayı manuel olarak elle düzenlemek. Hatanın oluştuğu yeri saptamak için gerekli bilgiye zaten sahipsiniz (unutmayın, mesajdaki ilk satırda). Tüm yapmanız gereken bu dosyayı FileZilla gibi bir FTP istemcisi veya Dosya Yöneticisi ile açmak.

Aslında burada yapmaya çalıştığınız tek şey mevcut dosyadaki fazlalık boşlukları silmek. Hata mesajında belirtilen line # başlamak için iyi bir yer. Bu noktadan, dosyayı bitimine kadar inceleyerek gerekli olmayan fazlalık boşluklar arayın ve bu boşlukları silin.

PHP etiketlerinin başlangıçlarına ve bitişlerine özel şekilde dikkat ettiğinize emin olun. <?php ve ?> etiketinden önce veya sonra herhangi boşluk olmamalıdır. Ayrıca kodun son satırının ardından herhangi boşluk veya boş satır olmamalıdır.

Aşağıdaki ekran görüntüsünde php etiketinin açılımından önce boşluk bulunan bir wp-config.php dosyası görebilirsiniz.

İPUCU: Çoğu metin düzenleme uygulamasında boşlukları otomatik olarak kaldırmanız mümkün. Örneğin Atom‘da gereksiz boşlukları kaldırmak için kodun tamamını seçin ve menüden sırasıyla Packages -> Whitespace -> Remove Trailing Whitespace seçimlerini gerçekleştirin.

Seçenek 2 – Bozuk dosyaları yenileyin

Birden fazla bozuk dosyayı düzenlemek tabi ki zor olabilir. Bu dosyalar yakın zamanda sitenize yüklediğiniz bir temaya, eklentiye ait olabilir hatta ve hatta çekirdek bir WordPress dosyası bile olabilir.

Eğer hata gerçekten de bir eklenti veya tema yüzünden oluşuyorsa, tüm yapmanız gereken temayı veya eklentiyi tekrar yüklemek. Bunu yapmak genellikle hatayı giderir. Diğer taraftan, eğer çekirdek bir WordPress dosyası hatanın başlıca sorumlusuysa en çıkar yolunuz kendinize temiz bir WordPress kopyası edinmek ve mevcut bozuk dosyayı temiz olan sürümü yükleyerek yenilemek. Bu sayede tüm WordPress kurulumuz olduğu gibi kalırken bozuk dosyayı asıl haline geri getirebilirsiniz.

Sonuç

İster dosyanıza küçük bir kod yapıştırın, yeni bir eklenti/tema yükleyin isterseniz kodu kendiniz yazın dosyada her zaman fazladan boşluk bırakma riskiniz bulunuyor. Görünüşte masum olan bu boşluklar sizlere Warning: cannot modify header information – headers already sent by WordPress hatası şeklinde geri dönebilir.

Bu rehberde, ilgili hatayı nasıl çözebileceğimizi gördük. Bu sayede internet sitenizi planladığınız şekilde çalışmaya devam ettirebilirsiniz. WordPress ile ilgili daha fazla rehber için, WordPress rehberleri bölümümüze göz atın.

Author
Yazar

Gürkan M.

Gürkan, Amerikan Kültürü ve Edebiyatı mezunu ve Hostinger’da pazarlama asistanı olarak içerik yönetimi, dijital pazarlama ve çevirilerden sorumlu. Küçük yaşta tanışıp o günden bu yana hayatının büyük bir parçası olan internette web geliştirme ve özel olarak WordPress konularıyla yakından ilgileniyor. Ayrıca, pervasız bir gamer.