Heim  >  Artikel  >  Backend-Entwicklung  >  PHP setcookie() kann zum ersten Mal keinen Wert speichern

PHP setcookie() kann zum ersten Mal keinen Wert speichern

不言
不言Original
2018-04-20 11:26:401849Durchsuche

Schreiben Sie zunächst den folgenden einfachen Code:

Kopieren Sie den Code Der Code lautet wie folgt:

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

Zuerst Bei diesem Besuch wurde ein Fehler gemeldet:

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

Frage: Warum gibt es beim ersten Besuch kein Cookie? ? Sollte ich es nicht zuerst einstellen und dann abrufen? ?

A: Verwenden Sie den Firebug von Firefox, um „Netzwerk“ anzuzeigen:

Client:

Sie können sehen, was der Browser (Client) macht Eine Anfrage an den Server. Bei der Anfrage werden verschiedene Parameter in die Header-Informationen der Anfrage aufgenommen, die dem Server mitteilen, welche Art von Text (Accept), welches Codierungsformat (Accept-Encoding) und welche Sprache ich erhalten möchte (Accept). -Sprache) usw. wird das Cookie natürlich auch an den Server weitergegeben (Cookie).

Serverseite:

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

Da das Cookie auf dem Client gesetzt wird, kann die Setcookie-Funktion selbst das nicht setzen Cookie, es kann dem Browser nur über die Header-Informationen mitteilen: Bruder, ich möchte ein Cookie setzen, der Schlüssel ist a, der Wert ist Wert, du kannst mir bei der Einrichtung bei dir helfen. 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, in der vom Browser bereitgestellten Cookie-Zeichenfolge nach dem Schlüssel zu suchen .a's Cookie und gibt seinen Wert zurück.

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

Unter anderem enthalten die zurückgegebenen Header-Informationen „Set-Cookie a=value“ empfängt der Browser diese Header-Informationen und speichert das Cookie in einer Datei auf dem Computer. Der Speicherort des Cookies scheint bei verschiedenen Browsern unterschiedlich zu sein. Dies würde den Rahmen dieses Artikels sprengen.

Wenn Sie den Browser aktualisieren und erneut auf den Server zugreifen, werden viele Header-Informationen an den Server gesendet, aber dieses Mal gibt es einen zusätzlichen a=Wert im Cookie _COOKIE['. a'] kann den Wert des Cookies natürlich mit Schlüssel a aus der Cookie-Zeichenfolge ermitteln

Verwandte Empfehlungen:

Beispielcode für die Anmeldebestätigung verwenden PHP-Cookies

PHP-Cookies-Operationsklasse

Das obige ist der detaillierte Inhalt vonPHP setcookie() kann zum ersten Mal keinen Wert speichern. 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