Nombre de session active, connectés sur le serveur

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 981 fois - Téléchargée 30 fois

Contenu du snippet

Fonction qui donne le nombre de sessions actives sur le serveur !

Source / Exemple :


function active_session()
{
  $dir_name = ini_get("session.save_path");
  $dir = opendir($dir_name); 
  $i=0;

  $max_time = ini_get("session.gc_maxlifetime");

  while ($file_name = readdir($dir))
  {
    $file = $dir_name . "/" . $file_name;
    $lastvisit = filemtime($file); 
    $difference = mktime() - $lastvisit; 
    if (is_file($file) && ($difference < $max_time) && fread(fopen($file,'r'),1) != '')
    {
      $i++;
    }
  }
  closedir($dir);
  return $i;
}

Conclusion :


Testé uniquement avec Apache ! WinNT et Linux

A voir également

Ajouter un commentaire Commentaires
mortiis Messages postés 120 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 9 mars 2008
12 oct. 2004 à 06:35
J'ai essayer ce script et il fonctionne, mais si un utilisateur vient juste de se déconnecter, il est conté quand même, il faut attendre que le temps d'expiration de sa session soit passé pour qu'il ne soit pas compté.

Comment on fait pour que quand l'utilisateur ferme le browser, la session soit pas compté.

Merci beaucoup pour cette source.
rdx83 Messages postés 4 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 23 janvier 2006
7 mai 2004 à 10:43
tazmania37, regarde dans ton php.ini il y a une section qui parle du SAFE MODE il suffit de la désactiver
tazmania37 Messages postés 46 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 10 novembre 2009
5 avril 2004 à 10:15
Bon script, exactement ce que je cherchais mais ... marche pas chez moi. Il m'affiche un problême de "SAFE MODE restriction in effect".
Je sais pas du tout ce que c'est !!!
BoulyFamily Messages postés 4 Date d'inscription mardi 16 septembre 2003 Statut Membre Dernière intervention 27 mars 2004
27 mars 2004 à 16:21
Je le charchais... je l'ai trouvé et avec le commentaire de pyroflo, c'est complet !

Excellent ;o)

SEE U SOON
BoulyFamily
pyroflo Messages postés 323 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 17 mai 2005
14 janv. 2004 à 19:49
Très malin, bravo rdx83 !

Une seule correction: lorsqu'on détruit une session, le fichier de cette session se trouvant donc dans le répertoire tmp de PHP est vidé et NON supprimé (supprimé en fonction de la durée de la session).
C'est pourquoi il faut ajouter cette condition pour ne comptabiliser que les sessions vraiment actives:

[...]

if (is_file($file) && ($difference < $max_time) && fread(fopen($file,'r'),1) != '')

[...]

Voilà,

@+
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.