Page 1 sur 1

Session + liste d'utilisateurs pour un chat

Posté : 06 août 2006, 22:35
par drelb
Bonjour

je désire faire une liste des utilisateurs loguer sur mon chat ajax donc il se log via une page php , aucun probleme le nom est bien recuperé par le chat mais j'ai un peu de mal à faire le listing :x

je récupere la liste des noms de sessions dans un repertoire /sessions/ et l'élément $_SESSION['nom'] informer lors d'une session start pour faire mon array
actuellement je bug la il remplace tout les noms de fichiers de sessions par le nom de l'utilisateur log alors que je désire la liste de tous ..

voici le code php :
$minute=10;
$chat_dir="../sessions/";
$users = array();
$dir_handle = opendir($chat_dir);
while (false !== ($file = readdir($dir_handle)))
{
   if ($file == "." || $file == "..") continue;
   if (time() > (filemtime($chat_dir.$file)+($minute *60))) continue;    $x=($file);
   $users[] = ($_SESSION['nom']);
}
$nd_users = count($users);
if ($nd_users==0)
{
   echo "Personne dans la chat room Actuellement<br>";
}
else
{
   echo "<table class=tbl border=1 cellspacing=0 cellpadding=3>";
   echo "<tr><td class=row1>Utilisateurs dans la Chatroom<br>dans les  $minute minutes</td></tr>";
   for ($i=0; $i<$nd_users; $i++)
   {
      $x=$users[$i];
      echo "<tr><td class=row2>$x</td><tr>";
   }
   echo "</table>";
}
infos complémentaires :
je suis chez free et jai bien un repertoire sessions à la base, les fichiers de sessions se créent bien , et j'ai bien un cookie coté client , je désire utiliser aucune base de donnée.

Merci d'avance de votre aide

Posté : 07 août 2006, 10:20
par jpaul
Je ne connais pas la structure du fichier session mais sauf erreur de ma part, tu as beau faire une boucle sur les fichiers, tu utilises toujours le même $_SESSION['nom'] (celui de la session que tu utilises, celle avec laquelle tu fais tes tests).
while (false !== ($file = readdir($dir_handle)))
{
   if ($file == "." || $file == "..") continue;
   if (time() > (filemtime($chat_dir.$file)+($minute *60))) continue;    $x=($file);
   $users[] = ($_SESSION['nom']);
} 
Pour avoir accès aux autres sessions courantes, il faut probablement que tu ouvres chacun des fichiers que tu as trouvé dans ta boucle pour y extraire le nom que tu cherches non ?

Posté : 07 août 2006, 11:00
par drelb
bonjour

si je met $file à la place , j'ai bien les noms de fichiers différents de sessions mais comment faire pour avoir les nicknames associés, tu m'a proposé des les ouvrir comment ?

merci d'avance pour votre aide
while (false !== ($file = readdir($dir_handle)))
{
   if ($file == "." || $file == "..") continue;
   if (time() > (filemtime($chat_dir.$file)+($minute *60))) continue; 
	 $x=($file);
   $users[] = ($file);
}

Posté : 07 août 2006, 11:25
par jpaul
Ben comme on lit un fichier...
Moi, en général, j'utilise les fonctions :
fopen()
fgets()
fclose()

Posté : 07 août 2006, 11:29
par drelb
merci jpaul je vais essayer avec :)

Posté : 07 août 2006, 12:18
par drelb
j'ai reussi :)

résolu je met