Heim >Backend-Entwicklung >PHP-Tutorial >Warum fehlt mein Cookie-Wert, nachdem ich „setcookie()' in PHP verwendet habe?
In PHP wird $_COOKIE verwendet, um den Wert von a abzurufen Ein neu erstelltes Cookie unmittelbar nach dem Aufruf von setcookie() kann dazu führen, dass der gewünschte Wert nicht verfügbar ist. Dieses Phänomen ergibt sich aus der asynchronen Natur der HTTP-Cookie-Verarbeitung.
Wenn setcookie() aufgerufen wird, gibt das PHP-Skript einen Befehl zum Erstellen eines Cookies aus und fügen Sie es in die ausgehende HTTP-Antwort ein. Die Antwort wird jedoch erst dann an den Client (d. h. den Browser) gesendet, wenn das Skript seine Ausführung abgeschlossen hat.
Da die Variable $_COOKIE die in der aktuellen HTTP-Anfrage enthaltenen Cookies widerspiegelt, werden alle während dieser Zeit an Cookies vorgenommenen Änderungen berücksichtigt Die Ausführung des serverseitigen Skripts ist in $_COOKIE nicht sofort verfügbar.
Zur Veranschaulichung Zeitleiste:
Um sicherzustellen, dass $_COOKIE den neu festgelegten Cookie-Wert widerspiegelt, können Sie ihn darin überschreiben Skript:
setcookie('uname', $uname, time() + 60 * 30); $_COOKIE['uname'] = $uname;
Diese Aktion erstellt das Cookie in der ausgehenden HTTP-Antwort und legt seinen Wert sofort in der Variablen $_COOKIE fest, wodurch es für die Verwendung innerhalb der aktuellen Skriptausführung zugänglich gemacht wird.
Das obige ist der detaillierte Inhalt vonWarum fehlt mein Cookie-Wert, nachdem ich „setcookie()' in PHP verwendet habe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!