Heim > Artikel > Backend-Entwicklung > So lösen Sie das Problem, dass PHP-Cookies den Wert nicht abrufen können
Lösung dafür, dass PHP-Cookie keinen Wert erhält: 1. Setzen Sie „setcookie('a','value')“; Der Server gibt die Informationen zurück.
Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 5.5.12, DELL G3-Computer
Wie man mit dem Problem umgeht, dass PHP zum ersten Mal keine Cookies erhalten kann
Schreiben Sie zunächst das Folgende einfach Code:
Der Code lautet wie folgt:
<?php setcookie('a','value'); print $_COOKIE['a'];
Beim ersten Zugriff wird ein Fehler gemeldet:
Der Grund für den Fehler ist, dass der Wert von $_COOKIE['a'] nicht existiert. Zweiter Besuch:
F: Warum gibt es beim ersten Besuch kein Cookie? ? Sollte ich es nicht zuerst einstellen und dann abrufen? ?
Antwort: Verwenden Sie Firebug von Firefox, um „Netzwerk“ anzuzeigen:
Client:
Sie können sehen, dass der Browser (Client) eine Anfrage an den Server sendet. Wenn die Anfrage gestellt wird, enthält sie die Header-Informationen der Anfrage Ich lade verschiedene Parameter hoch und teile dem Server mit, welche Art von Text ich erhalten möchte (Accept), welches Codierungsformat (Accept-Encoding), welche Sprache (Accept-Language) usw. und natürlich übergebe ich auch das Cookie an den Server (Cookie).
Serverseite:
Schritt eins: setcookie('a','value')
Da das Cookie auf der Clientseite gesetzt wird, kann die Setcookie-Funktion selbst das Cookie nicht setzen. Sie kann es dem Browser nur über Header-Informationen mitteilen . Sagte: Bruder, ich möchte ein Cookie setzen, der Schlüssel ist a, der Wert ist Wert, du kannst mir helfen, es bei dir einzurichten. Man kann es auch so verstehen: „Komm, ich freue mich heute und gebe dir einen Keks.“
Zweiter Schritt: $_COOKIE['a']$_COOKIE['a']
Der Vorgang besteht darin, mit dem Schlüssel a in der vom Browser bereitgestellten Cookie-Zeichenfolge zu suchen und seinen Wert zurückzugeben.
Offensichtlich kann dieses Cookie mit „Schlüssel a“ nicht gefunden werden, da dieses Cookie beim Zugriff des Clients auf den Server überhaupt nicht vorhanden ist und der vorherige Schritt zum Festlegen der Cookie-Header-Informationen noch nicht zurückgegeben wurde. Zum Client (PHP kehrt erst zum Client zurück, nachdem die Anweisung von oben nach unten ausgeführt wurde)
Schritt 3: Der Server gibt Informationen zurück
Unter anderem enthalten die zurückgegebenen Header-Informationen „Set-Cookie a=value“, Der Browser empfängt diese Header-Informationen und speichert das Cookie in einer Datei auf dem Computer. Der Speicherort des Cookies scheint für verschiedene Browser unterschiedlich zu sein. Dies würde den Rahmen dieses Artikels sprengen.
Aktualisieren Sie den Browser. Wenn Sie erneut auf den Server zugreifen, werden viele Header-Informationen an den Server gesendet, aber dieses Mal enthält das Cookie einen zusätzlichen a=Wert. $_COOKIE['a'] kann also natürlich den Wert des Cookies mit dem Schlüssel a aus der Cookie-Zeichenfolge finden.
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem, dass PHP-Cookies den Wert nicht abrufen können. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!