Elo !

Je veux connaître le nombre de sessions ouvertes sur mon site (dans le cadre d'une messagerie).
J'ai trouvé un script de compteur :
Code
<?php
if ( $d = opendir( session_save_path() ) ) {
$count = 0;
$session_timeout = 1 * 60;
 while ( false !== ( $file = readdir( $d ) ) ) {
  if ( $file != '.' && $file != '..' ) {
   if ( time()- fileatime(session_save_path() . '/' . $file) < $session_timeout ) {
   $count++;
   }
  }
 }
}
echo $count;
?>

...Mais j'ai cette erreur :
Citation :
Warning: opendir(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/clients/web3:/upload) in /clients/web3/public_html/messagerie/conv.php on line 109

Warning: opendir(/tmp): failed to open dir: Operation not permitted in /clients/web3/public_html/messagerie/conv.php on line 109


Alors j'ai tenté de faire autrement, avec des txt :
un fichier compteur.txt (avec incrémentation du nbre de visiteurs) et un fichier users.txt avec la liste des utilisateurs connectés

au niveau du log :
Code
/////////compteur sessions ouvertes
$fichier=fopen("compteur.txt","w+");
 $nbre = file("compteur.txt");
 
 $nbre=$nbre[0]+1;
 fwrite($fichier,"$nbre");

fclose ($fichier);

/////////récup pseudo sessions ouvertes
$file=fopen("users.txt","a");

 $user=$_SESSION['pseudo']."<br>";

 fwrite($file,"$user");

fclose ($file);


et du logout :
Code
/////////compteur sessions ouvertes
$fichier=fopen("compteur.txt","w+");
 while (!feof($fichier)) {
  $nbre=fgets($fichier, 4096);  // lire 4096 octets
 }
 $nbre=$nbre-1;
 fwrite($fichier,"$nbre");

fclose ($fichier);

/////////récup pseudo sessions ouvertes
$file=fopen("users.txt","w+");
 $user = file("users.txt");
 
 for($i=0;$i<=sizeof($users);$i++) {
  if($user[$i]==$_SESSION['pseudo']) {
   unset($user[$i]); // efface dans le tableau l'elt pseudo en délog
  }
 }

echo "$user";

fwrite($file,$user);

fclose ($file);

PB : mon compteur reste toujours à 1, et quand je fais mon logout, j'ai un "Array" qui se place dans la liste...

Bref, je comprends plus.
Avez-vous une idée ? Y'a peut-être plus simple...

Merci d'avance pour votre aide !