Session + liste d'utilisateurs pour un chat

Eléphant du PHP | 77 Messages

06 août 2006, 22:35

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

Eléphant du PHP | 451 Messages

07 août 2006, 10:20

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 ?
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Eléphant du PHP | 77 Messages

07 août 2006, 11:00

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);
}

Eléphant du PHP | 451 Messages

07 août 2006, 11:25

Ben comme on lit un fichier...
Moi, en général, j'utilise les fonctions :
fopen()
fgets()
fclose()
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Eléphant du PHP | 77 Messages

07 août 2006, 11:29

merci jpaul je vais essayer avec :)

Eléphant du PHP | 77 Messages

07 août 2006, 12:18

j'ai reussi :)

résolu je met