Nombre de session active, connectés sur le serveur

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 976 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

cs_mehdibou
Messages postés
365
Date d'inscription
vendredi 24 mai 2002
Statut
Membre
Dernière intervention
18 octobre 2004
-
Intéressant et complet :) ça peut servir pour compter le nombre de users online
10/10

Mehdi
virtuelkiller
Messages postés
44
Date d'inscription
samedi 8 mars 2003
Statut
Membre
Dernière intervention
9 mars 2016
-
Salut !
Je suis un niewbie en php alors j'aurais besoin d'un peu d'aide !
Peux tu m'expliquer ton code stp(commente le quoi... ;-) ? Merci d'avance.
Et comment faire pour afficher le contenu des variables de sessions à la suite ? Comme par exemple pour afficher les membres d'un site qui sont connectés ! Merci d'avance again !

++

VirtuelKiller
pyroflo
Messages postés
325
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à,

@+
BoulyFamily
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
tazmania37
Messages postés
47
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 !!!

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.