2017-01-31 9 views
1

Der Cookie löscht nicht auf meinem Debian-Apache-Server, sondern löscht in Ordnung auf meinem lokalen XAMPP. Hier ist der Code i für Cookie-Einstellung verwendetwarum Cookie löscht nicht funktioniert auf meinem Server, aber funktioniert gut auf meinem lokalen System?

$token = substr(hash('sha512', mt_rand() . microtime()), 0, 50); 
$extime = time()+86500; 

$url_parts = parse_url(current_url()); 
$domain = str_replace('www.', '', $url_parts['host']); 

// set cookie 

setcookie('rememberme',$token,$extime,"/",$domain); 

Dieser Code funktioniert auf dem Server und rememberme Cookie wird auf dem Server erstellt.

Hier ist der Code habe ich es zum Löschen von lokalen

// Delete Cookie 
setcookie('rememberme',"",0,"/"); 

Der obige Code funktionieren, aber nicht auf meinem Server arbeiten.

gehostet ich die Testanwendung als Sub-Domain mit URL wie http://example.com/myproject und $ domain gibt Wert .example.com

Wenn jemand weiß, warum es nicht richtig auf dem Server arbeitet mir bitte helfen.

+0

Ablaufdatum muss in der Vergangenheit liegen –

+0

Sie erkennen, dass der Cookie im Browser nicht ausgeführt wird, bis Sie eine senden Seite zum Browser, so dass die neuen Cookie-Informationen, dh das Löschen, an den Browser gesendet wird – RiggsFolly

+0

setcookie ('rememberme', '', time() - 3600); – Kaylined

Antwort

3

Laut meinem Kommentar: (und fügen Sie die Domäne als Argument hinzu).

setcookie('rememberme',"",0,"/",$domain); 

Oft benötigt es die Domäne.

Aus dem Handbuch auf Cookies: http://php.net/manual/en/function.setcookie.php und von Notes Anwender-Beitrag:

„, wenn Sie Cookies Probleme zu sehen, manchmal haben oder Cookies manchmal zu löschen, obwohl unter Anschluss an die Beratung, stellen Sie sicher, dass Sie das Cookie setzen mit das Domain-Argument.Setzen Sie es mit dem Punkt vor der Domain ein, wie die Beispiele zeigen: ".example.com". Ich gab die Domain nicht an und erkannte schließlich, dass ich den Cookie gesetzt hatte, als die Browser-URL http://www.example.com hatte und später versuchte um es zu löschen, wenn die URL nicht das www hatte, dh http://example.com. Dies führte auch dazu, dass die Seite den Cookie nicht finden konnte, wenn das www nicht in der Domäne war (wenn Sie das Argument Domäne dem setcookie hinzufügen Code, der den Cookie erstellt, stellen Sie sicher, dass Sie ihn auch dem Code hinzufügen, der den Cookie löscht.) "

+0

Vielen Dank Sir für die Detailerklärung. –

+0

@GeordyJames Sie sind herzlich willkommen Geordy. Ich fühlte, dass es mehr Informationen brauchte, anstatt nur eine schnelle Antwort zu geben. * Prost * –

Verwandte Themen