Hello,
Je reviens a la charge avec mes problemes des cookie.
J'ai écrit un forum/board et je souhaite indiquer a l'utilisateur lorsque il a lu tel ou telm message. Simplement je coloerie les message non lu en vert.
Mes cookies se nomment tous selon le format suivant:
Le cookie nomé id_post1 correspont au post/topic numeros 1
Le cookie nomé id_post2 correspont au post/topic numeros 2
Le cookie vaut 1 lorsque l'utilisateur a lu le message correspondant et 0 si le message n'a jamais été lu.
Pour savoir si un cookiie até lu j'ai la fonction suivante:
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function IsRead($id_post) { error_reporting( E_ERROR | E_WARNING | E_PARSE); return $_COOKIE["id_post".$id_post]; }
Le error_reporting est utile parce que il evite un message de warning lorsque le cookie n'existe pas.
Ma fonction IsRead fonctionne parfaitement mais je ne suis absolument pas content. J'avais commencé par écrire une autre fonction qui n'utilise pas la fonction error_reporting et qui liste les cookies un a un. Mais malheureuseemnt elle ne fonctionne pas et mes cookies ne sont pas lu.
Voila la fonction:
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 // La boucle while parcourt la liste/tableau des cookie // Lorsque le cookie cherché (celui qui correspond au cookie $id_post) // est trouvé on sort de la boucle et on retourne la valeur dudit cookie. // L'interet est de ne pas utiliser la fonction error_reporting de l'autre // fonction IsRead. // IsRead retourn 0 si le cookie n'est pas trouvé function IsReadOLD($id_post) { while (list($mykey, $myval) = each($_COOKIE)) { $MyCookie="id_post".$id_post; if ($mykey=$MyCookie) { return $myval; } } return (0); }
Ma question est: qu'est-ce qui ne vas pas dans ma fonction IsReadOLD pour qu'elle ne fonctionne pas ?
Merci de toute aide.
Partager