Ich frage mich, ob ich alle Cookies meiner Website löschen kann, wenn ein Benutzer auf Abmelden klickt, da ich diese Funktion zum Löschen von Cookies verwendet habe, sie jedoch nicht ordnungsgemäß funktioniert:
setcookie("user",false);
Gibt es eine Möglichkeit, die Cookies einer Domain in PHP zu löschen?
Antworten:
PHP setcookie ()
Auf dieser Seite werden alle Cookies für Ihre Domain gelöscht:
http://www.php.net/manual/en/function.setcookie.php#73484
quelle
HTTP_COOKIE
Werts besser wäre, als das$_COOKIE
Array zu durchlaufen . Hast du einen Grund dafür? Für mich sieht es nur nach mehr (doppelter) Arbeit für den Parser aus.Noch besser ist es jedoch, sich zu merken (oder irgendwo zu speichern), welche Cookies mit Ihrer Anwendung auf einer Domain gesetzt werden, und alle diese Cookies direkt zu löschen.
Auf diese Weise können Sie sicher sein, alle Werte korrekt zu löschen.
quelle
setcookie( $key, FALSE );
?! (Siehe Notes Scetion unter php.net/manual/en/function.setcookie.php )/
du platziert bistsetcookie
?/
ist der Cookie-Pfad. Sie müssen es so einstellen, dass Sie die Cookies aus der Domäne entfernen können. Andernfalls wird es auf den aktuellen Pfad gesetzt und wirkt sich nur auf diejenigen aus, die für den aktuellen Pfad festgelegt sind.Ich stimme einigen der obigen Antworten zu. Ich würde nur empfehlen, "time () - 1000" durch "1" zu ersetzen. Ein Wert von "1" bedeutet den 1. Januar 1970, wodurch der Ablauf zu 100% sichergestellt wird. Deshalb:
quelle
Stellen Sie sicher, dass Sie Ihre Setcookie-Funktion aufrufen, bevor eine Ausgabe auf Ihrer Site erfolgt.
Wenn sich Ihre Benutzer abmelden, sollten Sie auch ihre Sitzungsvariablen löschen / ungültig machen.
quelle
Wenn Sie den Namen Ihrer Cookies ändern, möchten Sie möglicherweise auch alle Cookies löschen, aber eines beibehalten:
Auch basierend auf dieser PHP-Antwort
quelle
Die bereitgestellten Antworten haben mein Problem nicht gelöst.
Es hat nicht:
Mein Skript funktioniert.
Es ist nicht die schönste / sicherste / optimale Lösung. Verwenden Sie diese Lösung daher nur, wenn Sie den Cookie-Pfad und / oder die Cookie-Domain nicht kennen. Oder verwenden Sie die Idee, um Ihre Version zu erstellen.
quelle
Sie sollten wissen, dass verschiedene Tracking-Tools wie Google Analytics auch Cookies in Ihrer Domain verwenden und diese nicht löschen möchten, wenn Sie korrekte Daten in GA haben möchten.
Die einzige Lösung, die ich zum Laufen bringen konnte, bestand darin, die vorhandenen Cookies auf null zu setzen. Ich konnte die Cookies nicht vom Client löschen.
Um einen Benutzer abzumelden, verwende ich Folgendes:
Dies löscht natürlich nicht ALLE Cookies.
quelle
0
Arguments, dass das Cookie während der Übertragung nicht einmal verschlüsselt wird.Alle vorherigen Antworten haben übersehen, dass das
setcookie
mit einer expliziten Domain hätte verwendet werden können. Darüber hinaus wurde das Cookie möglicherweise auf eine höhere Subdomain gesetzt, z. B. wenn Sie sich in einerfoo.bar.tar.com
Domain befanden , wurde möglicherweise ein Cookie gesetzttar.com
. Daher möchten Sie Cookies für alle Domains deaktivieren, die das Cookie möglicherweise gelöscht haben:quelle
Verwenden Sie die Funktion, um Cookies zu löschen:
Wenn Sie bestehen
true
, werden diesession
Daten gelöscht , andernfalls bleiben die Sitzungsdaten erhalten.quelle
Ich weiß, dass diese Frage alt ist, aber dies ist eine viel einfachere Alternative:
Aber sei vorsichtig! Es werden ALLE Header gelöscht, einschließlich Cookies, Sitzungen usw., wie in den Dokumenten erläutert .
quelle
quelle