Solution au problème selon lequel le cookie php ne peut pas obtenir la valeur : 1. Définissez "setcookie('a','value')" ; 2. Exécutez "$_COOKIE['a']$_COOKIE['a '] "; 3. Demandez simplement au serveur de renvoyer les informations.
L'environnement d'exploitation de cet article : système Windows7, version php5.5.12, ordinateur DELL G3
Comment gérer le problème que php impossible d'obtenir des cookies pour la première fois
Écrivez d'abord le code simple suivant :
Le code est le suivant :
<?php setcookie('a','value'); print $_COOKIE['a'];
La première fois que vous visitez, une erreur est signalé :
La raison de l'erreur 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'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. ce n’est pas le cas.
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 dans le cookie, là est une valeur a = de plus. Ainsi, $_COOKIE['a'] peut naturellement trouver la valeur du cookie avec la clé a de la chaîne du cookie.
Apprentissage recommandé : "Tutoriel vidéo 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!