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?
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?
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.
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
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
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 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.