ran-tan-plan Posté(e) le 16 octobre 2004 Partager Posté(e) le 16 octobre 2004 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? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Country Posté(e) le 16 octobre 2004 Partager Posté(e) le 16 octobre 2004 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 ?> Lien vers le commentaire Partager sur d’autres sites More sharing options...
ran-tan-plan Posté(e) le 16 octobre 2004 Auteur Partager Posté(e) le 16 octobre 2004 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? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Country Posté(e) le 16 octobre 2004 Partager Posté(e) le 16 octobre 2004 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 :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
ran-tan-plan Posté(e) le 16 octobre 2004 Auteur Partager Posté(e) le 16 octobre 2004 ah ouais j'avais pas matté les parenthèses en tout cas merci beaucoup! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Country Posté(e) le 16 octobre 2004 Partager Posté(e) le 16 octobre 2004 mais de rien Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 16 octobre 2004 Partager Posté(e) le 16 octobre 2004 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
ran-tan-plan Posté(e) le 17 octobre 2004 Auteur Partager Posté(e) le 17 octobre 2004 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.