Maison  >  Article  >  développement back-end  >  PHP ne peut pas obtenir le traitement des problèmes de cookies

PHP ne peut pas obtenir le traitement des problèmes de cookies

卡哇伊
卡哇伊original
2020-07-06 10:11:512925parcourir

Comment résoudre le problème selon lequel php ne peut pas obtenir de cookies : définissez d'abord un cookie avec la clé a et la valeur value ; puis recherchez le cookie de a dans la chaîne de cookie et renvoyez enfin sa valeur ; navigateur et visitez à nouveau. En ce qui concerne le serveur, il y a une autre valeur a=.

PHP ne peut pas obtenir le traitement des problèmes de cookies

Détails du problème

Écrivez d'abord le code simple suivant :

Le code est le suivant :

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

Lors du premier accès, une erreur est signalée :

La raison de l'erreur est que la valeur de $_COOKIE['a'] ne exister. Deuxième visite : value

Recommandations d'apprentissage associées : <a href="https://www.php.cn/course/list/29/type/2.html%20" target="_blank">Tutoriel vidéo php</a><code>相关学习推荐:<a href="https://www.php.cn/course/list/29/type/2.html" target="_blank">php视频教程</a><br>

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

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

Client :

Comme vous pouvez le voir, le navigateur (client) envoie 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 pour indiquer au serveur quel type de texte je souhaite recevoir (Accepter), quoi. format d'encodage (Accept-Encoding), quelle langue (Accept-Language), etc., bien entendu, le cookie est également transmis au serveur (Cookie).

Côté serveur :

Étape 1 : setcookie('a','value')

Étant donné que le cookie est défini côté 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 souhaite définir un cookie, la clé est un, la valeur est une valeur, vous pouvez m'aider à le configurer ici. Vous pouvez aussi le comprendre comme : "Viens, je suis heureux aujourd'hui et je vais te donner un cookie."

La deuxième étape : $_COOKIE['a']$_COOKIE['a']

C'est très simple, l'opération consiste à rechercher le cookie avec la clé a dans la chaîne de cookie apportée par le navigateur et à renvoyer 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'est pas 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. article.

Lorsque vous actualisez le navigateur et accédez à nouveau au serveur, de nombreuses informations d'en-tête seront également envoyées au serveur, mais cette fois il y aura plus de cookies A <.> est parti. Ainsi a=value peut naturellement trouver la valeur du cookie avec la clé a de la chaîne du cookie. $_COOKIE['a']

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!

Déclaration:
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