Sorunları çerezleri silme, olmaz unset (PHP)

8 Cevap php

Ben çerezleri silmek nasıl php kılavuzunu ve internet arama denedim ve ben bunu hepsi demek aynı şekilde denedim:

setcookie("name", '', 1);

veya

setcookie("name", '', time()-3600);

But when I check the cookies in the cookies dialog in Firefox, it's still there with the same value. I set this cookie using the following line:

setcookie("name", $value, time() + 259200, $path);

I found this question on stackoverflow: http://stackoverflow.com/questions/2497501/cookie-wont-unset, but none of the answers solved the problem. I also tried putting all paramaters in, like the authveya said, but it had no effect.

Herkes sorunu görüyor mu?

8 Cevap

The manual states:

Çerezler onlar ile ayarlandığı gibi aynı parametrelerle silinmesi gerekir. Değer bağımsız değişkeni boş bir dize veya FALSE, ve tüm diğer argümanlar setcookie bir önceki arama neticesinde ise, belirtilen ada sahip çerez uzak istemci silinir. Bu dahili geçmişte bir yıl için zaman 'silindi' değer ayarlayarak ve son elde edilir.

Bu yüzden de emin $path doğru belirtildiğini olun - also when deleting it. Cookie alt dizininde belirtilen Örneğin, size ebeveyn veya çocuk dizinleri (veya her ikisini) onu silmek mümkün olmayabilir.

Ben izinlerin nasıl tamamen emin değilim, ama path silmek çalışıyorsunuz çerez ne görmek için Web Developer Toolbar kullanmak isteyebilirsiniz.

Tamam, ben gerçekten anlamıyorum, ama şimdi çalışıyor. Sihirli kodu:

setcookie("name", '', 1, $path);

Ben zaten hiç denemedim?! Ne olursa olsun, şimdi çalışıyor. Yardımlarınız için teşekkürler, insanlar!

Ben kullanarak çalıştı

setcookie("name", "", -1);

ve Apache/PHP5 ile benim sunucuda bu çerez (en azından bir var_dump ($ _COOKIE), boş bir dizi gösterdi) temizlenir.

Ben kullanarak sugest

ob_start();

Flirts l

Eğer küçük bir değere zaman ayarı ve çerez için bir değer kullanarak denediniz mi?

setcookie("name", 'n', 1);

Script zaten HTTP başlıklarını göndermek olmadığını kontrol ettiniz mi?

if (headers_sent()) {
  trigger_error("Cant change cookies", E_USER_NOTICE);
}

De bana olsa on kez bir olur. Ben yolu biz kodu ile ilgili bir sorun sanırım.

Bu benim kodudur

setcookie("token", "", time() - 36000, "/");

Ben benzer bir sorunu vardı.

Ben hangi nedenle olursa olsun, logout.php dışında bir şey yankılanan aslında çerez silmek yapılan bulundu:

echo '{}';
setcookie('username', '', time()-3600, '/');