PHP setcookie() ne peut pas stocker de valeur pour la première fois

不言
Libérer: 2023-03-24 13:36:01
original
1915 Les gens l'ont consulté

Écrivez d'abord le code simple suivant :

Copiez le code Le code est le suivant :

<?php 
    
setcookie(&#39;a&#39;,&#39;value&#39;);
    print $_COOKIE[&#39;a&#39;];
Copier après la connexion

Premier Lors de cette visite, une erreur a été signalée :

La raison de l'erreur est que la valeur de $_COOKIE['a'] n'existe pas. Deuxième visite :

Question : Pourquoi n'y a-t-il pas de cookie lors de la première visite ? ? Ne devrais-je pas le régler d'abord, puis l'obtenir ? ?

A : Utilisez le firebug de Firefox pour afficher "Réseau" :

Client :

Vous pouvez voir que le navigateur (client) fait une requête au serveur. Lors de la requête, divers paramètres sont inclus dans les informations d'en-tête de la requête, indiquant au serveur quel type de texte (Accepter), quel format de codage (Accepter-Encodage) et quelle langue je souhaite recevoir (Accepter -Langue), etc., bien entendu, le Cookie est également transmis au serveur (Cookie).

Côté serveur :

Première étape : setcookie('a','value')

Étant donné que le cookie est défini sur le client, la fonction setcookie elle-même ne peut pas définir le cookie , il ne peut indiquer au navigateur que via les informations d'en-tête : Frère, je veux définir un cookie, la clé est a, la valeur est valeur, vous pouvez m'aider à le configurer chez vous. Vous pouvez aussi le comprendre comme : "Viens, je suis heureux aujourd'hui et je vais te donner un cookie."

Deuxième étape : $_COOKIE['a']$_COOKIE['a']

C'est très simple L'opération consiste à rechercher la clé dans la chaîne de cookie apportée par le navigateur. . le cookie de a et renvoie sa valeur.

Evidemment, ce cookie avec la "clé a" est introuvable, car lorsque le client accède au serveur, ce cookie n'existe pas du tout, et l'étape précédente Le les informations d'en-tête du cookie n'ont pas encore été renvoyées au client (php ne reviendra pas au client tant que l'instruction n'aura pas été exécutée de haut en bas)

Étape 3 : Le serveur renvoie les informations

Parmi eux, les informations d'en-tête renvoyées contiennent "Set-Cookie a=value", le navigateur reçoit ces informations d'en-tête et stocke le cookie dans un fichier sur l'ordinateur. L'emplacement de stockage du cookie semble être différent selon les navigateurs. Cela dépasse le cadre de cet article.

Lorsque vous actualisez le navigateur et accédez à nouveau au serveur, de nombreuses informations d'en-tête seront envoyées au serveur, mais cette fois, il y a une valeur a= supplémentaire dans le cookie. a'] peut naturellement trouver la valeur du cookie avec la clé a à partir de la chaîne du cookie

Recommandations associées :

Exemple de code de vérification de connexion en utilisant cookies php

classe d'opération de cookies php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal