2017-01-02 2 views
1

Wenn ich versuche, Cookie zu speichern, scheint es korrekt gespeichert zu sein, und ich kann sie mit $_COOKIE[] bekommen, aber wenn ich meine Webseite schließe und sie wieder öffne, kann ich sie nicht sehen.Warum Cookie abgelaufen nach dem Schließen der Webseite?

if(isset($_POST['cookieChk'])){ 
    setcookie('uName', $_POST['uName'], time() + (3600 * 24 * 30), '/', $_SERVER['SERVER_NAME']); 
    setcookie('pass', $_POST['pass'], time() + (3600 * 24 * 1), '/', $_SERVER['SERVER_NAME']); 
}else if(!isset($_POST['cookieChk'])){ 
    setcookie('uName', '', time() - (3600 * 24), '/', $_SERVER['SERVER_NAME']); 
    setcookie('pass', '', time() - (3600 * 24), '/', $_SERVER['SERVER_NAME']); 
} 

<input type="text" name="uName" class="loginBox" value="<?php if(isset($_COOKIE['uName']))echo $_COOKIE['uName']; ?>" /> 
+0

Vielleicht ein Browserproblem? Einstellungen -> Cookies nach dem Schließen entfernen? – Flummox

+0

Hallo liebe Flummox, Nein ist es nicht. – Rezvania

Antwort

1

Die Cookie-Standard-Ablaufzeit ist die Fenstersitzung, hier bezieht sich die Sitzung auf das Browserfenster, nicht auf die SESSION.

Hier ist ein Beispiel, sehen Sie die Verfallszeit von phphessid ist Sitzung im Bild. demo

Wenn das Fenster geschlossen wird, läuft der Koch ab. Wenn Sie dies nicht möchten, legen Sie die Cookie-Ablaufzeit manuell fest.

1

Sie sagte es in Ihrem Code, An jedem ersten Lauf dieses Codes wird die else if-Block ausgeführt werden, damit Sie Ihre Cookies selbst zerstören

Ich schlage vor, wenn das Ihre Put, die woanders blockieren oder entferne es vollständig

//the root of your problem 

setcookie('uName','',time()-(3600*24),'/',$_SERVER['SERVER_NAME']); 
setcookie('pass','',time()-(3600*24),'/',$_SERVER['SERVER_NAME']); 
Verwandte Themen