Posté(e) le 16 octobre 200420 a Dans mon script php, j'aimerais compter le nombre de visiteurs qui sont actuellement en train de visiter le site. Chaque visiteur, qu'il soit loggé ou pas, a plusieures variables session, comme par exemple $_SESSION['id'] ce que je voudrais, c'est compter le nombre de $_SESSION['id']. C'est possible? Si non, faudrait que je passe par une base de données. Y a moyen de faire en sorte qu'un champ mysql se supprime automatiquement apres 5 minutes?
Posté(e) le 16 octobre 200420 a Pour compter le nombre de sessions ouvertes : sur toutes les pages met : <? session_start(); // ouverture de la session ?> et à lendroit où tu veut mettre le compteur : <? if ($fp=opendir(session_save_path())) { // ouverture du dossier où sont stocké les fichiers des sessions $count=0; // mise à 0 du compteur $session_timeout = 5*60; // temps de validité d'une session (ici 5*60 secondes soit 5 min) while (($file=readdir($fp))!==false) { // on liste les fichiers du répertoire if ($file!="." && $file!="..") { if (time()-fileatime(session_save_path()."/".$file)<$session_timeout) $count++; // si la date du dernier accès au fichier de la session est < à 5 min on incrémente le compteur } } } echo $count; // et on affiche le résulat ?> Modifié le 16 octobre 200420 a par Country
Posté(e) le 16 octobre 200420 a Auteur y a un bug dans ton script mais j'arrive pas a le trouver. Ca m'a l'air d'etre quelque part dans le while() En fait il me trouve aucune session. Il affiche toujours 0 à la fin, meme si j'ai 2 fichier session. autre chose, si je modifie ton code comme ca: while (($file=readdir($fp)!==FALSE)) // on liste les fichiers du répertoire { if ($file!="." && $file!="..") { if ( (time()-fileatime(session_save_path()."/".$file)) < $session_timeout ) $count++; } print session_save_path()."/".$file; } la il affiche ceci c:/temp/1c:/temp/1c:/temp/1c:/temp/1 bref, il trouve 4 fichiers, et il y en a en fait que 2 et ils ne s'appellent pas 1, mais un truc du genre "sess_6f37c596bff60dcce48c83f36e841498" tu vois pourquoi?
Posté(e) le 16 octobre 200420 a En effet j'avai une petite erreur dans le while, il faut mettre : while (($file=readdir($fp))!==false) { à la place de while (($file=readdir($fp)!==false)) { une ) n'était pas à la bonne place. J'ai édité ma source au dessus par la même occasion Voila, là ça marche :)
Posté(e) le 16 octobre 200420 a Auteur ah ouais j'avais pas matté les parenthèses en tout cas merci beaucoup!
Posté(e) le 16 octobre 200420 a ran-tan-plan : Ca fonctionne ? Bon, j'ai pas tout lu désolé, mais 56K et timings serrés powa. Pour des scripts tout fait, tu peut aller sur phpscripts-fr. C'est en général libre et souvent sous GPL.
Posté(e) le 17 octobre 200420 a Auteur uiui ca fonctionne nickel en fait a la base je cherchais pas un script tout fait mais plutot une piste, pour pouvoir coder mon script a moi. Mais vu que Country m'a fait le script en entier, pourquoi pas
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.