Bu hata genelde php’de oturum yönetimi ile alakalı işler yaparken çıkar.. Daha önce bir çok kez karşılaştım ve geleneksel yöntemle çözdüm fakat bugünkü farklıydı.Bu hatanın geleneksel çözüm yöntemi;

<? ob_start();
session_start(); ?>

kodlarını sayfanın en en üstüne almak. Fakat bugün bu şekilde çözemedim. Notepad++ kullanıyorum ve tüm kodları UTF8 formatında yazıyorum.. Benim bu hatayı almamın sebebi kodları yazarken UTF-8 kodlamasını kullanmammış.. Bunu farketmem uzun sürdü. Çözümleri denerken, bir de şu dosyanın karakter kodlamasını ANSI yapayım dedim ve sorun çözüldü… Yani iki çözüm var;

  1. ob_start ve session_start kodlarını sayfalarınızın ilk satırına almak
  2. kodlarınızı yazarken kullandığınız dosyanın karakter kodlamasını ANSI yapmak…

Neden UTF-8 ile yazamıyoruz bilmiyorum.. Benim sorun o şekilde çözüldü ama utf8 ile de yazılmalı.. Eğer yeni bir bilgi bulursam yazarım veya bilen varsa lütfen paylaşsın..

 

27 Responses to PHP ‘Cannot send session cache limiter – headers already sent’ hatası

  1. eylultoprak diyor ki:

    ansi işaretleyip bom olabilir.
    yada utf8 işaretliyip bom olabilir ikisi biraz değişiyor.

    ama en sağlıklı yontem..

    crtl+a ctrl+x kodlama türü kafanıza göre

    sonra crtl+s ve ctrl+v
    tekrar ctrl+s yapın ve deneyin bakalım olacakmı.

    %90 olması lazım eğer kodlama kaynaklı bazen olmuyor ama deneyerek bu şekilde çözülebilir.

  2. Hüseyin Berberoğlu diyor ki:

    Teşekkürler yorumunuz için.. Artık ben notepad++’ta UTF-8 without BIN’i kullanıyorum ve bir problemle karşılaşmıyorum.. Herkese de bunu öneririm :)

  3. Emin diyor ki:

    Birde ben buldum :) eğer ki bir dosya içerisine başka sayfaları include yöntemi ile çağırıyorsanız ve o başka sayfalar içerisinde session işlemi yapıyorsanız o bir dosyanın başına yazınız o kodları :) aksi taktirde hata alacaksınız. Makale için ayrıca teşekkür ederim.

    Saygılarımla
    Emin ÖZTÜRK

  4. Erdal YAZICIOGLU diyor ki:

    Aynı hatayı ben Zend Framework ile çalışırken aldım. Bende kodlamayı Notepad++ ile yapıyorum. MVC de eğer ANSI ile yazarsam problem olmuyor and UTF-8 ile yazınca problem oluyordu. Yaklaşık bir hafta uğraştım sorun nedir diye. CSS den tutun tüm dosyaları tek tek gezdim. Sorunu aşamadım. En sonunda UTF-8 without BOM ile sorunu aştım. Zaten UTF ile kodladığınızda sayfanın kaynak kodlarına bakarsanız, sayfanın en üst tarafında ufak bir kare göreceksiniz.

    Kolay gele

  5. fikret diyor ki:

    ben de aynı sorunu alıyordum. ilginçtir burda yazıldığı gibi session_start kodunu en üste aldım sorun çözüldü. bu defa da session yönlerin birinde çalışmaz oldu. yani her yerde çalışiyor ama linklerin birinde çalışmıyor.üye girişi yaptığınızda bütün bağlantılar sorunsuz çalışırken hesabım a tıkladığınızda sorun veriyor.

    • Hüseyin Berberoğlu diyor ki:

      @fikret e-posta ile bana sorunun başka bir problemden kaynaklandığını söyledi.

  6. Furkan Çalışkan diyor ki:

    Bazen php.ini’deki output_buffering değişkenini Off’dan On’a çevirerek de bu sorun düzelebiliyor. İlginç.

  7. Emin diyor ki:

    Arkadaşlarım birde tavsiyem şu olur; eğer ki sayfalar içerisinde include yöntemi kullanıyorsanız, genel kullanım olan değil de şu şekilde kullanmanızı tavsiye ederim:

    ** PHP TAG **

    include_once ‘dosyaadi.php’;

    ** PHP TAG **

    burdada fonksiyon çakışmaları hatasını engellemiş olursunuz.

    Saygılarımla
    Emin ÖZTÜRK

  8. Emuman diyor ki:

    Arkadaşlar hepinize çok teşekkür ederim. Kaç gündür bununla uğraşıyordum, denemediğim şey araştırmadığım yer kalmadı ve bıkma aşamasına gelmiştim. PHP tabanlı bi scriptimde türkçe karakterlerde sorun oluyordu bu makaleyi okuduktan sonra NOTEPAD++ ile tüm dosyalarımı UTF-8 without BOM ile kaydettim sonuç mükemmel :D Artık hiçbir sorun kalmadı. Allah razı olsun hepinizden ;)

  9. maydesign diyor ki:

    Vallaha arkadaşlar sepetek ekle- ürün sil – sepeti güncelle – ürün ayrıntı vs sayfalarımın tamamında hiçbir sorun yokken sepeti göster linkini yaparken HATA vermeye başladı :-) ben hatayı şöle çözdüm sizinde bildiğiniz gibi @ ile hatayı görmezden gel dedim kod sonuç veriyor fakat hata görüntü kirliliğine sebeb oluyordu bölece halletmiş olduk.

  10. Ali Furkan diyor ki:

    Herkese teşekkürler sorunu ben de hallettim :)

  11. Emin ÖZTÜRK diyor ki:

    @Emuman yorumun sonu kosla oksi mex reklamı gibi bitmiş :D. Sonuç mükemmel :) hehe

  12. Abdullah diyor ki:

    normal UTF-8 dosyaların ilk üç karakteri bom kaydıdır. Bu ilk üç karakter php etiketlerinin içinde olmadığından print edilir. Karakterler print edilince de headerlar gönderilmiş olur. Headerlar gönderildiğinden session headerları geç kalmış olur ve uyarı verir. Dokümanınız utf-8 olmak zorunda ise, ansi as utf-8 olarak kaydetmelisiniz. Bu bom suz utf-8 anlamına gelir. Asıl sebep headerlar tamamlanmadan print gerçekleştiğinden varsayılan headerların gönderilmesi, kalanının elde kalması.

  13. Ahmet diyor ki:

    Bilgiler için sağolun bende kodları kesip yeni döküman açtım ve utf-8 dedim onun üzerine kaydettim sorun çözüldü.

  14. saslove1984 diyor ki:

    notepad++ ile ansi yaptım sorun çözüldü teşekkürler.

  15. Murat Çimen diyor ki:

    Known problem with Byte Order Mark (BOM) and header() in pages of a site.

    For example at sending headings or to a dynamic conclusion in other coding distinct from UTF-8 by means of XSLT ().

    To clean all symbols BOM from the text of page:

    1. exclude BOM from the main file;
    2. write down function of a return call for the buffer

    it will exclude BOM from a code of the connected files;
    3. do not experience for BOM in connected files;
    4. be pleased.

  16. Sercan TAPSIN diyor ki:

    Sayfanın başında yada içeriğinde. Kullandığınız editörlerin referans sayfaları vardır. Bunları kaldırın sıfır tertemiz sayfanın en üstüne ekleyin.

  17. cihan diyor ki:

    hocam ellerine sağlık verdiğin kodları dediğin şekilde yaptım sorun kalmadı emeklerine sağlık

  18. cihan diyor ki:

    son olarakta front page kullanıyorum oradan herhangi bir değişiklikte yapmadım saygılar

  19. ahmet selim diyor ki:

    çok basit ama çok sinir bozucu bir problem. basit bir çözümü olması içimi rahatlattı, zira satın aldığım scriptte bile bu hatayla karşılaştım ve bu beceriksiz yazılımcılar bile sorunu bitürlü çözemediler.
    teşekkür ediyorum :)

  20. Alone diyor ki:

    UTF-8 without BOM olarak çalışın ömür boyu içiniz huzur dolsun :) Güzel yazı sağolun.

  21. Safa diyor ki:

    Bence php tagı düzgün açsanız bu hata ile karşılaşmazsınız diye düşünüyorum :D Bir müşterim aynı hata ile karşılaştı ve <?php şeklinde düzelttirdim sorunu halloldu. Tabi kaydederken karakter kodlaması değişmiş olabilir fakat genede <?php yi ihmal etmeyin bazı serverlarda sorun çıkarabiliyor.

Bir Cevap Yazın

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

*

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

Set your Twitter account name in your settings to use the TwitterBar Section.