[Résolu]Notice: Undefined index: $_cookie

Eléphant du PHP | 60 Messages

19 oct. 2011, 17:15

Bonjour,
J'ai un petit test sur un cookie
Lorsque j'enchaîne la navigation tout se passe bien mais si je traine un peu sur une page avant de passer à une autre j'ai cette erreur Notice: Undefined index: suivi du fichier incriminé ou se trouve ce petit code:
if ($_COOKIE["res_width"] > 1279) {
$categories_per_row = 4;
} elseif ($_COOKIE["res_width"] > 1025) {
$categories_per_row = 3;
} else {
$categories_per_row = 2;
}
C'est quoi, une histoire de session ? le serveur ne conserve pas assez longtemps le cookie ?
Comment faire svp ?
D'avance merci.
Modifié en dernier par lecer144 le 19 oct. 2011, 18:19, modifié 1 fois.

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

19 oct. 2011, 17:26

salut,

si le message indique que res_width n'existe pas comme index dans $_COOKIE, c'est que ton utilisation de setcookie ne lui donne pas une durée de vie suffisante (voir doc).

c'est pour cela que la fonction isset est extrêmement pratique car tu ne peux être certain que le cookie existe (suppression en sortie du navigateur, nettoyage quelconque sur l'ordi ou refus des cookies etc etc).


@+
Modifié en dernier par moogli le 20 oct. 2011, 10:51, modifié 1 fois.
Il en faut peu pour être heureux ......

Eléphant du PHP | 60 Messages

19 oct. 2011, 17:37

Sa durée est de 3600 ... 1 heure donc ... bon après tout, peut-être que j'ai vraiment trainé à ce point entre 2 refresh navigateur ... ça m'étonne quand même 1h mais je vais augmenter sa durée pour voir ... il n'y a pas d'autres explications de toute façon ?

Eléphant du PHP | 343 Messages

19 oct. 2011, 21:15

Déjà essaye 1 simple isset comme l'a proposé Moogli et pour vérifier que ton cookie est bien crée, tu peux aussi vérifier dans tes cookies si tu trouves ton res_width.
Développeur web