337 Stimmen

Ein Cookie entfernen

Wenn ich ein Cookie entfernen möchte, versuche ich

unset($_COOKIE['hello']);

Ich sehe in meinem Cookie-Browser von Firefox, dass das Cookie noch existiert. Wie kann ich das Cookie wirklich entfernen?

17voto

user3285097 Punkte 151

Ich hatte das gleiche Problem in meinem Code und fand heraus, dass es ein Problem mit dem Cookie-Pfad war. Schauen Sie sich diesen Stack Overflow Beitrag an: Ich kann das von php gesetzte Cookie nicht löschen

Ich hatte das Cookie mit einem Pfadwert von "/" gesetzt, hatte aber keinen Pfadwert, als ich versuchte, es zu löschen, also wurde es nicht gelöscht. Hier ist ein Beispiel dafür, was funktioniert hat:

Setzen des Cookies:

$cookiePath = "/";
$cookieExpire = time()+(60*60*24);//one day -> seconds*minutes*hours
setcookie("CookieName",$cookieValue,$cookieExpire,$cookiePath);

Löschung des Cookies:

setcookie("cookieName","", time()-3600, $cookiePath);
unset ($_COOKIE['cookieName']);

Ich hoffe, das hilft.

8voto

Alistair Knock Punkte 1796

Wenn Sie das Cookie so einstellen, dass es in der Vergangenheit abläuft, wird es vom Browser entfernt. Siehe setcookie() löschen Beispiel bei php.net

8voto

Amit Merchant Punkte 1005

Setzen Sie einfach den Wert von cookie auf false um sie zu deaktivieren:

setcookie('cookiename', false);

8voto

Nulik Punkte 5655

So funktioniert der PHP v7 setcookie()-Code, wenn Sie das tun:

<?php
    setcookie('user_id','');
    setcookie('session','');
?>

Aus der Ausgabe von tcpdump beim Sniffing auf Port 80 geht hervor, dass der Server die folgenden HTTP-Header an den Client (Browser) sendet:

Set-Cookie: user_id=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0
Set-Cookie: session=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0

Wenn man die Pakete in den folgenden Anfragen beobachtet, sendet der Browser diese Cookies nicht mehr in den Headern

7voto

Soumen Pasari Punkte 125

Wenn Sie das Cookie vollständig aus Ihrer aktuellen Domain löschen möchten, dann wird Ihnen der folgende Code bestimmt helfen.

unset($_COOKIE['hello']);
setcookie("hello", "", time() - 300,"/");

Dieser Code löscht die Cookie-Variable vollständig aus all Ihren Domänen, d.h.: " / " - bedeutet, dass der Wert der Cookie-Variable für alle Domänen und nicht nur für die aktuelle Domäne oder den aktuellen Pfad festgelegt wurde. time() - 300 bedeutet, dass der Wert auf eine frühere Zeit festgelegt wurde, so dass er abläuft.

Auf diese Weise wird sie perfekt gelöscht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X