Cannot Modify Header Information – Headers Already Sent By Hatası Nasıl Çözülür
15.01.2022 09:13 84 Görüntülendi

Cannot Modify Header Information – Headers Already Sent By Hatası Nasıl Çözülür

WordPress hata mesajları, sitenizde sorunlara neyin neden olduğu konusunda size bir fikir verir. "Cannot Modify Header Information – Headers Already Sent By" hatası istisna değildir. Bir PHP dosyası, kodundaki bir sorun nedeniyle yürütülemiyorsa, bu mesajla karşılaşırsınız.

Türkçe adıyla "Başlık bilgisi değiştirilemiyor" hatasının birkaç olası nedeni vardır. Neyse ki, mesajın kendisi size hangi dosyanın soruna neden olduğunu söyleyecektir. Hatta sorunu içeren kod satırına da işaret ediyor.

Bu yazıda, bu hatayı ve nedenlerini tartışacağız. Ardından, sorunu çözebileceğiniz iki yoldan bahsedeceğiz. Gelin birlikte inceleyelim!

Cannot Modify Header Information – Headers Already Sent By Hatasının Sebebi Nedir?

Daha önce de belirttiğimiz gibi, sitenizin .php dosyalarından biri çalıştırılamadığında bu hatayla karşılaşacaksınız. WordPress, temel işlevleri için wp-config.php ve functions.php gibi .php dosyalarına güvenir.

Web sitenizin yüklemesi gereken .php dosyalarından birinde bir sorun varsa, şuna benzer bir hata mesajı göreceksiniz:

Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/wp-config.php:#) in /home/public_html/wp-includes/file-example.php on line 33

Neyse ki, "Cannot Modify Header Information" hatası, sorun gidermeyi nispeten basit hale getiren birçok bilgi sağlar. Mesaj sizi iki dosyaya yönlendirecektir. Bunun ilki, ikincisinin yürütülmesini engelleyen sorunu içerir.

Hata mesajının sonunda “xx. satır” yazan bir bölüm göreceksiniz. Bu kısım soruna neden olan belirli kodun yerini gösterir. Genellikle, PHP kodundaki sorunu düzeltmek oldukça kolaydır. Hata mesajını tetikleyebilecek bazı yaygın nedenler şunlardır:

  • <?php Kodun segmentinden önceki veya kapanış ?> etiketinden sonra boşluk olması
  • PHP başlık işlevinden önceki bir HTML bloğunda hata olması
  • Print veya echo PHP başlık işlevinden önce eklenen ifadeler yer alması
  • Bir eklentinin koduyla ilgili sorun olması

Bu tür hataları düzeltmek, PHP kodunu değiştirirken en azından bir nebze olsun dikkatlı olmanızı gerektirir. Yaptığınız herhangi bir yanlış işlem tüm kodunuzu geçersiz kılabilir. Yine de, sorunu tanımlamak için biraz daha fazla yardıma ihtiyacınız olabilir. Bu, özellikle sorun PHP header işlevinden önceki boşluklar veya ifadelerle ilgili değilse geçerlidir.

Cannot Modify Header Information – Headers Already Sent By Hatası Nasıl Çözülür

Cannot Modify Header Information hatasını gidermek için iki yöntem vardır. İlk yöntem, WordPress panosundan çıkmanızı gerektirmez. Ancak, panoya erişemiyorsanız veya WordPress kullanamıyorsanız, ikinci strateji FTP/SFTP kullanır. İlk sorun giderme yöntemiyle başlayalım.

1. Hatayı Eklenti/Tema Düzenleyici ile Düzeltin veya Bir Eklentiyi Değiştirin

“Cannot Modify Header Information – Headers Already Sent By” hatasıyla karşılaştığınızda yapmanız gereken ilk şey, soruna neden olan dosyayı açmaktır. Ardından, mesajın gösterdiği satırı bulun.

Örneğin, aşağıdaki hatayı görürseniz, bu, temanızın function.php dosyasının içine bakmanız gerektiği anlamına gelir:

Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/wp-content/themes/twentytwentyone/functions.php:#) in /home/public_html/wp-includes/file-example.php on line 1

Bu çözümde, WordPress tema düzenleyicisini kullanarak sorunun kaynağına ulaşabilirsiniz. Erişmek için Görünüm > Tema Düzenleyici'ye tıklayın.

Erişmeniz gereken dosyayı seçmek için sağdaki menüyü kullanın.

Cannot Modify Header Information – Headers Already Sent By Hatası Nasıl Çözülür | Atak Domain Hosting

Yakından bakarsanız, <?php etiketten önce birkaç boşluk göreceksiniz. Hata mesajının kendisi bir numaralı satırı işaret ediyor. Bu nedenle, bu size sorunun kaynağının boşluktan kaynakladığını söyler. Bu örnekte, tek yapmanız gereken boşlukları kaldırmak ve Dosyayı Güncelle üzerine tıklamak . Şimdi web sitenizi yeniden yüklemeyi deneyin; hata gitmiş olmalıdır.

Aynı işlemi WordPress eklenti düzenleyicisini kullanarak da uygulayabilirsiniz ( Eklentiler > Eklenti Düzenleyici ). Bu yöntem, hatalı bir eklenti dosyasına işaret ediyorsa geçerlidir. Alternatif olarak, WordPress eklentileri dizininizdeki dosyalardan birini belirten bir hatayla karşılaşabilirsiniz. Bu senaryoda, bu eklentiyi kaldırıp yeniden yükleyebilirsiniz. Çoğu durumda, bu sizin için sorunu halledecektir.

Ancak, kullandığınız araca bağlı olarak bu eklentinin yapılandırmasını kaybedebileceğinizi unutmayın. Bu nedenle, eklentiyi yeniden kurmanız gerekebilir. Bu sebeple önce sitenizin yedeğini almanız gerektiğini unutmayın.

2. Sorun Dosyasını FTP/SFTP ile Düzenleyin

Bazı durumlarda, "Cannot Modify Header Information – Headers Already Sent By" hatasının kaynağı, WordPress temasını veya eklenti düzenleyicilerini kullanarak erişebileceğiniz bir dosyada bulunmaz. Alternatif olarak, WordPress dışı bir site kullanıyor olabilirsiniz.

Bu senaryoda, en iyi seçeneğiniz sorunlu dosyaya FTP/SFTP kullanarak erişmektir. Bunu yapmak için FileZilla platformu gibi bir FTP veya SFTP istemcisi kullanmanız gerekir. Ayrıca web sitenizin FTP/SFTP kimlik bilgilerine erişmeniz gerekir. Çoğu durumda, bunları hosting panelinizde bulabilmeniz gerekir.

Hosting sağlayıcınıza girip SFTP/SSH yazan kısıma giriş yapın.

Cannot Modify Header Information – Headers Already Sent By Hatası Nasıl Çözülür | Atak Domain Hosting

İlk olarak web sitenize bağlanmak için FTP veya SFTP istemcinizi kullanın. Bu kısımda sitenin kök klasörünü bulmanız gerekecek. Genellikle adı root, public_html, public veya kendi sitenizin adı olmalıdır.

İşte bir WordPress kök klasörünün içinin nasıl göründüğüne hızlı bir bakış atalım:

Cannot Modify Header Information – Headers Already Sent By Hatası Nasıl Çözülür | Atak Domain Hosting

Şimdi Cannot Modify Header Information – Headers Already Sent By hatasınıa sebep olan dosyayı bulun. Örneğin, sorun public/wp-config.php ise dosyaya sağ tıklayın ve Görüntüle/Düzenle seçeneğini seçin.