So löschen Sie PHP-Cookies: Erstellen Sie zunächst eine PHP-Beispieldatei. Anschließend werden die erstellten Cookies mit der Methode „setcookie(‘test‘“,time()-3600) gelöscht.
Empfohlen: „PHP-Video-Tutorial“
Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 5.6. Diese Methode ist für alle Computermarken geeignet.
PHP löscht COOKIE, PHP kann COOKIE nicht löschen?
COOKIE-Gültigkeitsdauer und COOKIE-Ablauf festlegen
Das PHP-Handbuch erwähnt:
PHP unterstützt transparent HTTP-Cookies. Ein Cookie ist ein Mechanismus, der Daten in einem Remote-Browser speichert, um Benutzer zu verfolgen und zu identifizieren. Cookies können mit den Funktionen setcookie() oder setrawcookie() gesetzt werden. Cookies sind Teil von HTTP-Headern, daher muss die Funktion setcookie() aufgerufen werden, bevor andere Informationen an den Browser ausgegeben werden, ähnlich wie bei den Einschränkungen für die Funktion header().
setcookie(): bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]] )
Um ein Cookie zu löschen, müssen Sie sicherstellen, dass sein Ablaufdatum in der Vergangenheit liegt, um den Löschmechanismus des Browsers auszulösen.
Die Möglichkeit, ein Cookie zu löschen, besteht darin, die Gültigkeitsdauer des Cookies auf vor der aktuellen Zeit festzulegen, was fast alle PHP-Programmierer tun.
Zum Beispiel:
setcookie('test','true',time()+3600); //创建cookie setcookie('test','',time()-3600); //清除建立的cookie
======================================== ==== ====================================
Wenn Sie direkt Cookie setzen( "test", ' ');
print_r($_COOKIE);
Das Ergebnis ist, dass das gesamte $_COOKIE-Array leer ist, nicht nur $_COOKIE['testcookie']. Also verwende ich Winsock, um das Paket zu erfassen, den zurückgegebenen http-Header zu beobachten und zu finden dass der http-Header tatsächlich
Set-Cookie: testcookie=deleted; expires=Mon, 18-Jun-2007 02:42:33 GMT
ist. Dies zeigt, dass setcookie("testcookie", ''); tatsächlich das Cookie testcookie direkt löscht. Im PHP-Handbuch gibt es überhaupt keine Erklärung.
Schließlich habe ich das gelesen PHP-Quellcode und endlich die Wahrheit herausgefunden (das ist Open Source. Die Vorteile sind großartig, wenn etwas über die Insider-Geschichte unklar ist, überprüfen Sie direkt den Quellcode)
Der folgende Code befindet sich in der Nähe von Zeile 99 von ext/standard/ head.c im Linux-Quellcodepaket von php5.20.
if (value && value_len == 0) { time_t t = time(NULL) - 31536001; dt = php_format_date("D, d-M-Y H:i:s T", sizeof("D, d-M-Y H:i:s T")-1, t, 0 TSRMLS_CC); sprintf(cookie, "Set-Cookie: %s=deleted; expires=%s", name, dt); efree(dt); } else { sprintf(cookie, "Set-Cookie: %s=%s", name, value ? encoded_value : ""); if (expires > 0) { strcat(cookie, "; expires="); dt = php_format_date("D, d-M-Y H:i:s T", sizeof("D, d-M-Y H:i:s T")-1, expires, 0 TSRMLS_CC); strcat(cookie, dt); efree(dt); } }
In der Quellcodeanzeige ist klar, ob (Wert && value_len == 0), wenn value_len 0 ist
sprintf(cookie, "Set-Cookie: %s=deleted; expires=%s", name, dt);
den HTTP-Header sendet um das Cookie im Browser zu löschen.
Abschließend können wir daraus schließen, dass die Verwendung von
setcookie($cookiename, '');或者 setcookie($cookiename, NULL);
in PHP Cookies löscht, was in diesen Handbüchern natürlich nicht steht.
============================================== == ====================================
php-Cookies können nicht gelöscht/abgelaufen sein?
Heute habe ich mich mit Cookie bei der Website angemeldet, mit
setcookie("username", "username", time()+1000,"/php100/");
die Anmeldeinformationen des Benutzers gespeichert und mich dann mit
setcookie("username", "", time()-3600);
abgemeldet. Beim Testen unter IE gab es kein Problem. Da Sie eine Website erstellen, müssen Sie mit möglichst vielen Browsern kompatibel sein, haha. Also habe ich es in Firefox getestet und beim Anmelden hat alles gut funktioniert. Aber als ich es gestartet habe, bin ich auf Probleme gestoßen. Es gibt keine Möglichkeit, sich abzumelden, der Benutzer bleibt immer angemeldet. Also habe ich den Unterschied zwischen Cookie-Datensätzen in IE und Firefox überprüft und nach dem Testen wurde mir plötzlich klar, dass es Unterschiede gibt.
Es stellt sich heraus, dass, wenn der vierte Parameter (legaler Pfadparameter) von setcookie() nicht angegeben wird, das aktuelle Verzeichnis standardmäßig als legaler Pfad verwendet wird und der von mir getestete Pfad lautet: http://127.0.0.1 /php/rss2fla/data/log.php, daher sind die beim Anmelden und Abmelden festgelegten Cookie-Pfade unterschiedlich.
IE ist benutzerfreundlicher als Firefox. Bei der Angabe des Pfads wird die Cookie-Variable mit demselben Namen unter der aktuellen IP überschrieben, was zu einer neuen Variablen führt ...
Das obige ist der detaillierte Inhalt vonSo löschen Sie PHP-Cookies. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!