Giriş formunu doldurup gönderdiğinizde WordPress size şöyle bir şey diyor: ‘Error: cookies are blocked due to unexpected output’ ya da ‘Cookies are blocked or not supported by your browser’. Yani tarayıcınızın çerezleri reddettiğini ya da oturum çerezinin düzgün kurulamadığını söylüyor. İsim tarayıcıyı işaret ediyor ama sorun çoğu zaman sunucu tarafındaki ufak bir çıktıdan kaynaklanıyor.
Hata mesajının iki farklı biçimiyle karşılaşabilirsiniz ama ikisi de aynı yere çıkar: oturum çerezi yazılamıyor. Bu yüzden mesajın tam kelimelerine takılmayın, çözüm her iki durumda da benzer adımları izler.
Neden oluyor
WordPress giriş sırasında tarayıcıya bir oturum çerezi yazar. Bu çerezin yazılabilmesi için, sayfa gövdesine daha hiçbir şey gönderilmemiş olması gerekir. Eğer bir dosyanın en başında ya da sonunda fazladan bir boşluk, bir satır sonu ya da görünmez bir karakter varsa, PHP bunu çıktı olarak gönderir. Çıktı bir kez gönderildikten sonra çerez başlığı eklenemez ve giriş çöker. ‘Unexpected output’ ifadesi tam da bunu anlatıyor.
Diğer sebepler daha basit. Tarayıcınız o site için çerezleri engelliyor olabilir. Eski ve çakışan bir çerez kalmış olabilir. Site adresiniz yanlış ayarlıysa çerez bir alan adına yazılıp başka birinde okunmaya çalışılır. Son olarak bazı eklentiler, özellikle başlık bilgisine erken müdahale edenler, bu hatayı tetikleyebilir.
Adım adım çözüm
Önce tarayıcı tarafını temizleyin. O siteye ait çerezleri silin, önbelleği boşaltın ve çerezlere izin verildiğinden emin olun. Ardından farklı bir tarayıcıda ya da gizli pencerede giriş yapmayı deneyin. Sorun yalnızca sizin tarayıcınızdaysa burada çözülür.
Çözülmediyse büyük ihtimalle fazladan çıktı var. İki dosyaya bakacaksınız: wp-config.php ve aktif temanızın functions.php dosyası. Bunları düz metin düzenleyiciyle açın.
- wp-config.php dosyasının en başındaki <?php etiketinden önce hiçbir karakter, boşluk ya da boş satır olmamalı. Dosya doğrudan <?php ile başlamalı.
- Dosyanın sonunda kapanış etiketi olarak ?> varsa, ondan sonra tek bir boşluk ya da satır bile kalmamalı. Aslında en güvenlisi kapanış etiketini tamamen kaldırmaktır; PHP dosyalarında sondaki ?> zorunlu değildir ve kaldırmak bu tür kazaları önler.
- Aynı kontrolü functions.php için yapın. Başındaki <?php öncesi ve sonundaki ?> sonrası temiz olmalı.
Düzenlemeyi yaparken dosyayı UTF-8 olarak, tercihen BOM işareti olmadan kaydedin. Bazı editörler dosyanın başına görünmez bir BOM karakteri ekler ve bu da aynı hataya yol açar.
Dosyalar temizse site adresini kontrol edin. Panele giremiyorsanız wp-config.php içine define(‘WP_HOME’, ‘https://siteadiniz.com’); ve define(‘WP_SITEURL’, ‘https://siteadiniz.com’); satırlarını ekleyerek adresi sabitleyin. www kullanımını her iki satırda tutarlı tutun.
Son olarak eklentileri eleyin. FTP ile wp-content altındaki plugins klasörünün adını değiştirip tüm eklentileri pasifleştirin, girişi deneyin, sonra tek tek aktif ederek suçluyu bulun.
Bu adımları sırayla uygularken aralarda tarayıcı çerezlerini tekrar temizlemeyi unutmayın. Bir ayarı düzelttikten sonra eski çerez hâlâ duruyorsa, test ettiğinizde yine hata alır ve çözümün işe yaramadığını sanabilirsiniz. Gizli pencerede denemek bu yanılgıyı önler, çünkü orada geçmişten kalan bir çerez bulunmaz. Değişiklik yaptığınız her turda temiz bir pencereyle test etmek, hangi adımın gerçekten işe yaradığını net görmenizi sağlar.
Tekrar yaşamamak için
En büyük kaynak dosya düzenlemeleri olduğu için, wp-config.php ya da functions.php’ye her dokunduğunuzda dosyanın başını ve sonunu bir kez daha gözden geçirin. Kod yapıştırırken sondaki boş satırlara dikkat edin. Düzenleme için not defteri benzeri basit araçlar yerine kod editörü kullanmak bu görünmez karakterleri yakalamanıza yardımcı olur.
Hatanın adı tarayıcıyı söylese de iş çoğu zaman bir boşlukta bitiyor. Dosyaları açıp bakmaktan çekinmeyin, takılırsanız beraber inceleyebiliriz.
Bu işleri kendiniz yapmak yerine profesyonel destek isterseniz, WordPress bakım ve teknik destek hizmetime göz atabilirsiniz.
Bu konunun tüm rehberi: WordPress Hataları ve Çözümleri