Verstehen des verzögerten Erscheinens von Cookie-Werten in $_COOKIE
Beim Versuch, den Wert eines Cookies unmittelbar nach dem Aufruf der Funktion setcookie() abzurufen PHP, möglicherweise tritt ein Problem auf, bei dem $_COOKIE['uname'] undefiniert bleibt. Dies liegt daran, dass Cookies erst dann instanziiert werden, wenn die HTTP-Antwort an den Client übertragen wird.
Der Grund für diese Verzögerung ist, dass PHP-Cookies auf den Set-Cookie-HTTP-Header angewiesen sind, der in den Antwortheadern enthalten ist. Wenn setcookie() aufgerufen wird, fügt es den Set-Cookie-Header zur Antwort hinzu, aber der Header wird erst dann an den Client gesendet, wenn die Ausführung des Skripts abgeschlossen ist.
Sie können diese Einschränkung jedoch manuell umgehen Festlegen des Werts $_COOKIE['uname'] nach dem Aufruf von setcookie():
setcookie('uname', $uname, time() + 60 * 30); $_COOKIE['uname'] = $uname;
Durch manuelles Festlegen des Werts $_COOKIE wird das Cookie zur Verwendung verfügbar sofort in Ihr Skript einbinden. Dadurch können Sie auf den Wert des Cookies zugreifen, ohne sich auf die nächste Anfrage des Clients verlassen zu müssen.
Das obige ist der detaillierte Inhalt vonWarum sind PHP-Cookies nach „setcookie()' nicht sofort verfügbar?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!