je suis en train de concevoir un compteur pour mon site perso. Ca marche bien (il compte le nombre de visites pour chaque page dans un fichier), mais j'ai voulu utiliser les sessions pour éviter qu'il n'icrémente le contenu du fichier du compteur si quelqu'un clique sur 'actualiser' ou revient sur une page un peu plus tard.
Mon système fonctionne très bien sous easyPHP (je me suis inspiré de divers tutoriaux), mais pas sur internet (ftp de chez Tiscali/Alice).
C'est-à-dire qu'il ne renvoie aucun message d'erreur, mais il compte à chaque fois même quand il ne devrait pas! J'utilise un index principal qui inclut les pages annexes (codées dans la variable $page via la méthode GET), et qui appelle la fonction compteur si le nom de la page actuelle n'est pas encore dans la variable de session. J'ai bien sûr un session_start au tout début de mon index.
Voici le code de la partie comptage:
Or il appelle la fonction de comptage à chaque fois (en fait il va donc à chaque fois dans la première partie du test), comme s'il créait la variable de session à chaque fois!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 if (!isset($_SESSION['stat'])) //aucune page n'a encore été visitée { $_SESSION['stat']=array($page); // $_SESSION['stat'] est un tableau // contenant les noms de toutes les //pages visitées lors de la session increase_stat($page); //appel à mon compteur } elseif (!in_array($page,$_SESSION['stat'])) //la variable de session existe, mais la //page n'a pas encore été visitée { $_SESSION['stat'][]=$page; increase_stat($page); }
J'ai aussi essayé une autre version qui utilise la fonction "session_register" plutot que la superglobale $_SESSION, mais c'est pareil.
Je ne comprend pas pourquoi ça ne marche pas (alors que ça marche sous easyPHP)
Merci




Répondre avec citation




Partager