Merhaba, genellikle web teknolojileri, web programlama dilleri, linux ile ilgili yazıların yazıldığı bir sitede bulunmaktasınız. Eğer bu konular ilginizi çekiyorsa yazılarıma abone olmanızı öneririm. Yazar hakkında ayrıntılı bilgi için tıklayın.

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

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..

Creative Commons License

14 Yorum

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.

Hüseyin Berberoğlu Ekim 11th, 2007, 14:48

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 :)

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

Hüseyin Berberoğlu Şubat 27th, 2009, 23:42

@Emin teşekkürler. Anlattığın olay hatanın oluşma sebebi.

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

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 Nisan 20th, 2009, 12:17

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

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

Hüseyin Berberoğlu Nisan 20th, 2009, 13:43

@Furkan bu çözüm de güzelmiş, teşekkürler.

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

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 ;)

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.

Yorum Yazın

Kısa da olsa bir yorum yazmanız yazar için çok önemli.
Yorumunuz