“Cannot modify header information – headers already sent by” hatası ve çözümü

Dün yine aynı sorun başıma gelince biraz araştırma yaptım ve olası tüm hataları ve çözümlerini öğrendim.
Buna istinaden bir makale hazırlamam gerektiğine karar verdim 🙂 Öncelikle bu sorun bütün hostlarda karşılaşılmayan bir sorun. Bazı ayarların farklı olmasından kaynaklanıyor ve dolayısı ile heran başınıza gelebilecek bir sorun.

Çözüm Yolları

1- Tüm kodların en üstüne ob_start() koymak.

<?php

ob_start();

echo 'test..';

header('Location:http://www.erbilen.net');

?>

2- Sorun devam ediyorsa bu yüksek ihtimalle çalıştığınız dosyanın formatının utf-8 bomsuz olmayışından kaynaklıdır. Hemen notepad++ yardımı ile sayfanızın açın ve sayfa kodlamasını utf-8 bomsuz olarak değiştirin.

RWDiPFY

16DSFgg

Birkaç çözüm yolu daha var ama ben onların işe yaradığını sanmıyorum. Beni 2. yöntem kurtardı. Zaten ob_start() kullanıyordum meğerse sayfam utf8 miş ama bomsuz olmadığı için sorun çıkarıyormuş. Bilginize.

Yayınlayan

Tayfun Erbilen

2009'dan beri web işleriyle uğraşan, aynı zamanda amatör müziklede ilgilenen sıradan birisi..

““Cannot modify header information – headers already sent by” hatası ve çözümü” üzerine 28 yorum

  1. Tayfun abi allah senden razi olsun ne aradıysam çözümü sende 😀 allah o yazan ellere dert keder göstermesin. Allah İşlerinde kolaylık versin Çok Saol

  2. bunu neden yaptığımızı soranlar için, php, session_start(), header() gibi fonksiyonları ilk olarak almak istiyor. Bu yüzden böyle header fonksiyonlarından önce herhangi bir kod ( html içerik dahil ) olmaması gerekiyor. Fakat bu durum çok sıkıntılı bir hal aldı ki bunun önüne geçmek için ob_start() kullanmaya başlandı. yani akış yönetimi yazıldı..

  3. Yaptığım basit bir eklentide bu sorunla karşılaştım. Ne yaptıysam olmadı. Yabancı kaynaklarda genelde taglardan dolayı olduğunu söylüyorlardı fakat kod dizimi doğru olduğu halde aynı hatayı alıyordum. Birinci yolu deneyince sorun çözüldü. Teşekkür ederim.:)

  4. Bu sorun header() fonsiyonundan önce ekrana bişey yazmaya çalışmandan dolayıdır. utf-8 bomsuz ve ya ob_start() kendini aldatmakdır. header() session_start() ve s. bu gibi fonksiyonlardan önce ekrana bir şeyler yazmaya çalışmazsanız problemle karşılaşmazsınız.

  5. index.php de <?php tagından önce iki satır boşluk kalmış ondan bu hatayı veriyormuş yuh bir saat uğraştım ya

  6. Yakınlarda bende yaşadım bu sorunu. Evet ob_start sorunu çözüyor daha önce kullanmıştım. Ama bu defa inat ettim.Bazı arkadaşlar ekrana birşey yazdırmaya çalışmayın gibi fikirler vermişler ama bu sorun genelde ekrana birşeyler yazdırmaya çalışmamızdan veya yazdırdığımızdan olmuyor. Kompleks işlerde html kodları ciddi karışıyor. Bomsuz kaydetmeyi de denedim ama olmadı. En sonunda hata veren html includemi açtım grup grup silip denedim. Bir grup kodu sildiğimde hata düzeldi. Ama sildiğim kodda hiç bir sorun görünmüyor. Komik gelecek ama sildiğim grup kodların soldan koda kadar olun bölümlerini satır satır sildim. Yani tüm kodları sola sıfıra yasladım. Sorun OK ))) muhtemelen arada bir yerde görünmez bir karakter veya bir boşluğu output ediyordu. Çaresiz kalınan noktalarda belki ihtiyacı olanların işine yarar bu yöntem. Sadece bir projede kullandım, stabil her zaman aynı sonucu verirmi bilmiyorum. Ayrıca; Tayfun arkadaşım, siz çok değerli bir insansınız, iyiki varsınız.

  7. yarım saattir nette dolaşıyorum biri de çıkıp kodunun başına ob_start(); koyarsan düzelir dememiş ya! çok teşekkürler hocam

  8. Kardeşim, Allah senden binlerce defa razı olsun.
    175 TL. vererek form scripti satın aldım. Gönderimde hata veriyordu. 2 haftadır uğraşıyorum. Sorunu ne yapsam çözemedim.
    Senin bu yazını ve yorumları okuyunca, dediğin gibi hata veren kodların bulunduğu dosyalara ob_start(); ekledim.
    Sorun çözüldü.
    Helal olsun sana kardeşim.

  9. beyin durdunca sağa sola bakan eylemler 2. çözümün, uykuya bir adım oldu. zabbah 6:31. teşekkürler, bilip paylaşanlar. kısaca; hata ekranında yer alan ilgili dokümanları sıra ile tek tek çevirmek gerekiyor.

  10. Son yorum 2 yıl önce yapılmış, bi tazeleyelim biz bunu 🙂 Bilgine sağlık, sorunu çözdüm.

  11. Kardeşim asla yorum yapmam kimseye ama helal olsun sayende çözdük sağolasın varolasın

  12. Sağ olun hocam sizin sayenizde çok şey öğrendim. Allah sizden razı olsun.

  13. Eyvallah dostum baya bir iş gördü saatlerdir çözemediğim sorun 10 saniyelik işmiş…

Bir Cevap Yazın

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