php benim web sitesinin tüm çerezleri silmek nasıl

6 Cevap php

Ben çerezleri silmek için işlev olarak kullanılan ama düzgün çalışmıyor çünkü bir kullanıcı, oturum kapatma tıkladığımda benim tüm web sitesi çerezleri silebilir, merak ediyorum:

setcookie("user",false);

PHP bir etki çerezleri silmek için bir yolu var mı?

6 Cevap

PHP setcookie()

Bu sayfada alınan, bu etki için kurabiye her yoketmek olacaktır:

// unset cookies
if (isset($_SERVER['HTTP_COOKIE'])) {
    $cookies = explode(';', $_SERVER['HTTP_COOKIE']);
    foreach($cookies as $cookie) {
        $parts = explode('=', $cookie);
        $name = trim($parts[0]);
        setcookie($name, '', time()-1000);
        setcookie($name, '', time()-1000, '/');
    }
}

http://www.php.net/manual/en/function.setcookie.php#73484

Ben yukarıda bazı cevapları katılıyorum. Ben sadece "1" ile "zaman () -1000" değiştirilmesi tavsiye ederim. "1" değeri erme% 100 garanti 1 Ocak 1970, demektir. Bu yüzden:

setcookie($name, '', 1);
setcookie($name, '', 1, '/');

herhangi bir çıkış sitenizde olur önce size setcookie işlevini çağrı emin olun.

Kullanıcıların çıkıyor ise de, aynı zamanda onların oturum değişkenleri geçersiz / silmeniz gerekir.

Google Analytics, etki çerezleri kullanmak ve GA doğru veri istiyorsanız, bunları silmek istemiyorum gibi çeşitli izleme araçları farkında olmalıdır.

Ben çalışan alabilir tek çözüm null mevcut çerezleri ayarlamak oldu. Ben istemciden çerezleri silmek olamazdı.

Yani bir kullanıcı çıkıyor için ben aşağıdakileri kullanın:

setcookie("username", null, time()+$this->seconds, "/", $this->domain, 0);
setcookie("password", null, time()+$this->seconds, "/", $this->domain, 0);

Tabii ki bu TÜM çerezleri silmez.

Eğer Cookies adını değiştirdiğinizde, aynı zamanda tüm çerezleri silebilirsiniz ama bir korumak isteyebilirsiniz:

if (isset($_COOKIE)) {
    foreach($_COOKIE as $name => $value) {
        if ($name != "preservecookie") // Name of the cookie you want to preserve 
        {
            setcookie($name, '', 1); // Better use 1 to avoid time problems, like timezones
            setcookie($name, '', 1, '/');
        }
    }
}

Ayrıca bu PHP-Answer dayalı

Çerezler istemci bilgisayarda saklanır, böylece onları silinecek komutunu olamaz. Tüm yapabileceğiniz bunları sona erecek veya üzerine bunları ayarlanır. Yeterince iyi değilse, o zaman sadece etki alakalı çerezleri bulmak için güvenlik ve yerel yasaları ihlal kullanıcıların bilgisayarlarına kötü niyetli bir trojan enjekte ve sonra bu silmek zorunda olacaktır.