Ben denemek bir Cookie kaldırmak istediğinizde
unset($_COOKIE['hello']);
Ben çerez hala varolduğunu firefox benim çerez tarayıcıda görmek. Nasıl gerçekten çerez kaldırabilirim?
Eğer geçmişte sona erecek çerez ayarlarsanız, tarayıcı kaldıracaktır. Bkz setcookie() delete example at php.net
PHP docs "Example #2 setcookie() delete example" etiketli örnek bakın. Tarayıcıdan bir çerez temizlemek için, çerez doldu tarayıcı söylemek gerekir ... sonra tarayıcı kaldıracaktır. unset
bunu sadece COOKIE diziden 'merhaba' çerez kaldırır kullandım gibi.
Çerezi silmek için sadece NULL değerini ayarlamanız gerekir:
"If you've set a cookie with nondefault values for an expiration time, path, or domain, you must provide those same values again when you delete the cookie for the cookie to be deleted properly." Quote from "Learning PHP5" book.
Yani bu kodu (benim için işleri) çalışması gerekir:
Setting the cookie:
setcookie('foo', 'bar', time() + 60 * 5);
Deleting the cookie:
setcookie('foo', '', time() + 60 * 5);
Ama herkes gerekli, ve bu yüzden, geçmişe son kullanma tarihi olduğunu ayarı olduğunu fark?
i know that there a long time that this topic has been created but I have seen in theses solution one little mistake (I i can call it like that, because it's a detail.). I agree, the better solution is probably this solution:
if (isset($_COOKIE['remember_user'])) {
unset($_COOKIE['Hello']);
unset($_COOKIE['HelloTest1']);
setcookie('Hello', null, -1, '/');
setcookie('HelloTest1', null, -1, '/');
return true;
} else {
return false;
}
Ancak, mevcut durumda, hemen unset fonction çalıştığını ve unnset fonction işler değildir bu durumda yeni süresi dolan çerez oluşturmak her durumda çerezleri delet.
That means that even if the unset fonction works, it will still 2 cookies on the computer. The asked goal, in a logical point of view, is to delete the cookies if it is possible and if it really isn't, make it expire; to be the cleanest.
Yani, biz daha iyi yapmamız gerektiğini düşünüyorum:
if (isset($_COOKIE['remember_user'])) {
setcookie('Hello', null, -1, '/');
setcookie('HelloTest1', null, -1, '/');
unset($_COOKIE['Hello']);
unset($_COOKIE['HelloTest1']);
return true;
} else {
return false;
}
Teşekkür ve güzel bir gün :)