Nombre de session active, connectés sur le serveur

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 160 fois - Téléchargée 28 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

Messages postés
120
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
9 mars 2008

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.
Messages postés
4
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
23 janvier 2006

tazmania37, regarde dans ton php.ini il y a une section qui parle du SAFE MODE il suffit de la désactiver
Messages postés
46
Date d'inscription
mercredi 29 octobre 2003
Statut
Membre
Dernière intervention
10 novembre 2009

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 !!!
Messages postés
4
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
27 mars 2004

Je le charchais... je l'ai trouvé et avec le commentaire de pyroflo, c'est complet !

Excellent ;o)

SEE U SOON
BoulyFamily
Messages postés
323
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
17 mai 2005

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.