des cookies qui ne veulent pas s'afficher

Eléphant du PHP | 331 Messages

17 janv. 2007, 20:08

Bonjour à tous,

Je rencontre un problème pour le moins étrange.

J'ai tout d'abord placé un cookie via le code suivant:
$timestamp_expire = time() + 365*24*3600; // Le cookie expirera dans un an
setcookie('pseudo', $login, $timestamp_expire); // On écrit un cookie avec le login
setcookie('user_id', $num, $timestamp_expire); // On écrit un autre cookie avec l'id
Ce cookie se place trés bien puisque dans une page vierge, j'ai placé le code suivant de manière à tester :
echo $_COOKIE['pseudo'];
Le problème, c'est que dans une toute autre page, qui contient déjà beaucoup de choses, j'ai beau placé ce même code pour afficher le cookie, et là, il ne veut pas s'afficher.

Pourriez-vous me dire le pourquoi de cette différence ? Comment faire afficher mes cookies sur ma page principale déjà alimentée ?

Merci !

Jay

ViPHP
AB
ViPHP | 5818 Messages

17 janv. 2007, 20:19

Bonjour,
Bonjour à tous,

Ce cookie se place trés bien puisque dans une page vierge, j'ai placé le code suivant de manière à tester :
echo $_COOKIE['pseudo'];
Le problème, c'est que dans une toute autre page, qui contient déjà beaucoup de choses, j'ai beau placé ce même code pour afficher le cookie, et là, il ne veut pas s'afficher.
Si tu as vérifié l'existence de ton cookie et que c'est OK, le pb vient du code de cette page, qui contient déjà beaucoup de choses...Je ne vois pas d'autres explications.

Eléphant du PHP | 331 Messages

17 janv. 2007, 20:22

Ben oui, je me doute, mais quel type de données pourrait rentrer en conflit avec l'affichage de mon cookie.
C'est d'autant plus surprenant que le code concernant l'affichage du cookie est situé tout en haut de la page.
Une autré idée ?

ViPHP
ViPHP | 1961 Messages

17 janv. 2007, 20:45

Bonsoir,

As-tu placé session_start() avant ?
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 331 Messages

17 janv. 2007, 21:09

A la base oui, session_start() était placé avant (puisque j'utilise aussi des variables superglobales de session) mais ensuite, j'ai fais le test en le plaçant après et le résultat est le même !

ViPHP
AB
ViPHP | 5818 Messages

18 janv. 2007, 01:28

Bizarre, bizarre

Dans ton code il doit peut-être y avoir quelque chose qui supprime ton cookie.
Ma méthode de cancre quand je suis dos au mur c'est de supprimer bloc de code par bloc de code. Tu finiras bien par trouver là ou ça coince.

lux
Eléphant du PHP | 372 Messages

18 janv. 2007, 02:15

Bizarre, bizarre

Dans ton code il doit peut-être y avoir quelque chose qui supprime ton cookie.
Ma méthode de cancre quand je suis dos au mur c'est de supprimer bloc de code par bloc de code. Tu finiras bien par trouver là ou ça coince.
Je faisais ça au début, j'ai trouvé mieux, tu mets le code bloc par bloc en commentaires avec /* et */ 8-)

ViPHP
AB
ViPHP | 5818 Messages

18 janv. 2007, 18:18

Effectivement, j'ai été un peu vite dans ma formulation, je voulais dire : supprimer l'exécution du code, bloc de code par bloc de code :oops:

Tu fais bien de préciser. Les débutants qui m'auraient pris au pied de la lettre se seraient compliqué la vie :wink:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

18 janv. 2007, 18:27

Est ce que dans cette fameuse page qui fait plein de choses, tu n'essayerais pas de lire le cookie juste après l'avoir défini ? (dans l'exécution du même script j'entends)

Si c'est le cas c'est normal, le cookie ne sera pris en compte que lors de l'accès à la prochaine page :)

sinon... la lecture ne devrait pas poser de problème, et puisque cela fonctionne dans une autre page, tu peux toujours essayer de faire afficher la valeur en plusieurs endroit du code et voir à partir d'où tu le perds ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...