Heim  >  Artikel  >  Backend-Entwicklung  >  PHP kann keine Cookie-Problemverarbeitung erhalten

PHP kann keine Cookie-Problemverarbeitung erhalten

卡哇伊
卡哇伊Original
2020-07-06 10:11:512978Durchsuche

So gehen Sie mit dem Problem um, dass PHP keine Cookies erhalten kann: Setzen Sie zuerst ein Cookie mit dem Schlüssel a und dem Wert value; suchen Sie dann nach dem Cookie von a in der Cookie-Zeichenfolge und geben Sie schließlich seinen Wert zurück Browser und erneut besuchen Wenn es um den Server geht, gibt es noch einen weiteren a=Wert.

PHP kann keine Cookie-Problemverarbeitung erhalten

Problemdetails

Schreiben Sie zunächst den folgenden einfachen Code:

Der Code lautet wie folgt:

<?php 
    setcookie(&#39;a&#39;,&#39;value&#39;);
    print $_COOKIE[&#39;a&#39;];

Beim ersten Zugriff wird ein Fehler gemeldet:

Der Grund für den Fehler ist, dass der Wert von $_COOKIE['a'] nicht stimmt existieren. Zweiter Besuch: value

Verwandte Lernempfehlungen: <a href="https://www.php.cn/course/list/29/type/2.html%20" target="_blank">php-Video-Tutorial</a><code>相关学习推荐:<a href="https://www.php.cn/course/list/29/type/2.html" target="_blank">php视频教程</a><br>

F: Warum gibt es bei meinem ersten Besuch kein Cookie? ? Sollte ich es nicht zuerst einstellen und dann abrufen? ?

Antwort: Verwenden Sie den Firefox-Firebug, um „Netzwerk“ anzuzeigen:

Client:

Wie Sie sehen können, sendet der Browser (Client) eine Anfrage an den Server. Bei der Anfrage sind verschiedene Parameter in den Anfrage-Header-Informationen enthalten, um dem Server mitzuteilen, welche Art von Text ich erhalten möchte (Akzeptieren), was Codierungsformat (Accept-Encoding), welche Sprache (Accept-Language) usw., natürlich wird das Cookie auch an den Server übergeben (Cookie).

Serverseite:

Schritt 1: setcookie('a','value')

Da das Cookie auf der Clientseite gesetzt wird, kann die Setcookie-Funktion selbst das nicht setzen Cookie kann dem Browser nur über die Header-Informationen mitteilen: Bruder, ich möchte ein Cookie setzen, der Schlüssel ist ein, der Wert ist Wert, du kannst mir dort beim Einrichten helfen. Man kann es auch so verstehen: „Komm, ich freue mich heute und gebe dir einen Keks.“

Der zweite Schritt: $_COOKIE['a']$_COOKIE['a']

Es ist sehr einfach. 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 dem „Schlüssel a“ nicht gefunden werden, denn wenn der Client auf den Server zugreift, existiert dieses Cookie überhaupt nicht und der vorherige Schritt Header-Informationen des Cookies wurden noch nicht an den Client zurückgegeben (PHP kehrt erst dann an den Client zurück, wenn die Anweisung von oben nach unten ausgeführt wird)

Schritt 3: Der Server gibt Informationen zurück

Die zurückgegebenen Header-Informationen enthalten unter anderem 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 Artikel.

Wenn Sie den Browser aktualisieren und erneut auf den Server zugreifen, werden auch viele Header-Informationen an den Server gesendet, dieses Mal jedoch mehr Cookies 🎜> ist weg. So kann a=value natürlich den Wert des Cookies mit Schlüssel a aus der Cookie-Zeichenfolge ermitteln. $_COOKIE['a']

Das obige ist der detaillierte Inhalt vonPHP kann keine Cookie-Problemverarbeitung erhalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn