Merhaba arkadaşlar,
Bugün ticari bir e-ticaret projesi yazarken çok saçma bir hatayla karşılaştım. Her şey gayet normal her zaman kullandığım framework(laravel), daha önce defalarca kullandığım sınıflar vs. ancak bir türlü çerezleri silemedim. Çok komik bir durum olduğunun farkındayım 😀 Ancak belki başka bir geliştirici kardeşimizin başına gelir diye buraya yazmak istedim. Hemen konuya girelim.
PHP çerez silinmiyor hatasının aslında bir sürü sebebi var. Öncelikle bu sebeplerden bazılarını listeleyelim.
Session_start ve ob_start koymayı unutmak: PHP kodlarımızın en üstüne bu kodları eklemezsek maalesef hata alırız.
Kapatma etiketi: Bunu daha önceki yazılarda sürekli söylediğim gibi yine söylemek istiyorum. Kapatma etiketi kullanmayın, kullandırtmayın. PHP kapatma (?>) işaretinden sonra kalan boşluk ve satırlar scriptiniz düzgün çalışmasını engeller.
Yanlış zaman dilimi: Eğer timezone ayarınızı yanlış ayarlarsanız çerezlerde yine sorun yaşayabilirsiniz.
Tekrar oluşturulan çerezler: Çerezleri sildiğiniz kod satırından sonra yada yönlendirdiğiniz sayfada tekrar çerez oluşturulması.
İşletim sisteminiz: Eğer local olarak çerez silmede sorun yaşıyorsanız çerezlerinizi kaydettiğiniz dizinin yazılabilir olduğundan emin olun. Windows kullanan arkadaşlar bu sorunu pek yaşamazlar. Ben debian tabanlı bir dağıtım kullanıyorum ve bir kaç kez başıma geldi.
Eğer kodlarınızı kontrol edip yukarıda ki sebeplerin hiçbirinde bir sorun olmadığından emin olduğunuz halde yine de çerezleri silemiyorsanız çerezin süresini yeniden tanımlayın. Biraz kafanızı karıştırdım sanırım kısaca olay şu arkadaşlar: Her şeyi doğru yapıyorsunuz ama bir türlü çerez silinmiyor bu durumda setcookie(“cerez”, “”, time() – 1) kullandığınız zaman bile çerezi silemiyorsanız en garanti olan kod aşağıdaki gibidir.
setcookie("cerez", "", (time()+1) );
Faydalı olması dileğiyle 🙂
İlk Yorumu Siz Yapın