Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/10/2006, 18h31   #1
Candidat au titre de Membre du Club
 
Avatar de Pepito2030
 
Inscription : juillet 2006
Messages : 43
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 43
Points : 12
Points : 12
Par défaut Afficher liste des connectés

Salut,

Je suis en train de me mettre aux sessions et j'aimerais afficher une liste des connectés sur le site mais le problème c'est que je débute la dedans.

Sur le site du zero il y avait un tuto sur comment afficher une liste de connectés mais je n'arrive pas à me connecter sur leur site !!!

Vous connaissez un tutorial, un site qui explique comment afficher la liste des connectés ?

Ca fait deux jours que leur site est hs !!!! je cherche un tutorial qui explique de a à z et non pas juste quelques phrases pour me donner l'idées générales !!

Merci bonne soirée
Pepito2030 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2006, 18h53   #2
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 41
Points : 27
Points : 27
Envoyer un message via MSN à Tournevyks
Ouais, le site du zéro déconne...
Y'as de bons tutoriels sur ce site.

Sinon, le tuto du SDZ fonctionnait comme suit :
A chaque fois que quelqu'un se connecte, le script regarde son IP. Si celle-ci n'est pas présente dans la BDD, on l'ajoute, avec le timestamp actuel. Et si elle est présente, on modifie le timestamp pour le mettre à la valeur actuelle.

Quand tu ajoutes à ta BDD une nouvelle IP, ou que tu modifies le Timestamp d'une ip, tu dois regarder celles qui ont un timestamp qui date d'il y a plus de 5 minutes, et les supprimer.

Et pour afficher le nombre d'inscrits, on compte le nombre d'ip.

Je sais pas si j'ai été clair... Sinon, gabylewer@hotmail.com
Tournevyks est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2006, 20h00   #3
Membre expérimenté
 
Avatar de jc_cornic
 
Inscription : octobre 2006
Messages : 624
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : octobre 2006
Messages : 624
Points : 588
Points : 588
Envoyer un message via MSN à jc_cornic
Salut, je ne m'y connais pas trop en sessions, qui est connecté ou non mais si je devais le faire rapidement, j'utiliserai une bdd.

Tu crée une table dans ta base de données qui contient un champ "nom".

Dès que quelqu'un se connecte avec log/pass, bref, ouvre une nouvelle session, tu l'enregistre dans ta base avec son nom (et son mot de passe si tu veux).

Ensuite, quand tu veux afficher ta liste de connectés, tu les trouve dans ta base de données.


Comme on m'a demandé d'être le moins flou possible dernierement, voici un peu de code...

login.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
// On imagine ici que tu a dejà verifié que l'utilisateur est valide...
// Son log est passé en $_POST via le formulaire de log
 
// === CONNEXION A LA BD ===
mysql_connect($host, $login, $password);
mysql_select_db($table);
 
// on y insere maintenant le nom du nouveau client
$sql = "INSERT INTO test (nom) " . " VALUES ( $_POST['log'] )"; 
mysql_query($SQL);
 
mysql_close();
 
...
 
// il faut aussi mettre a jour les variables de session pour savoir qui est 
// connecté à la session concernée.
$_SESSION['log'] = $_POST['log'];
Ensuite, dans le fichier qui affiche la liste des connectés, on rouvre la bdd pour y lire tous les noms.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
// === CONNEXION A LA BD ===
mysql_connect($host, $login, $password);
mysql_select_db($table);
 
// lecture de tous les login
 $SQL = "SELECT * FROM " . $nomDeLaTable;
 $res = mysql_query($SQL);
 
 while($val=mysql_fetch_array($res)) 
 {
         // Affichage de chaque nom
        echo " - ".$val['nom'] . "<br>";
 }
Voilà, j'ai juste oublié de dire qu'il faut enlever de la bdd le nom de la personne qui se déconnecte ou qui ferme l'exploreur... D'ailleurs, je ne sais pas ou récuperer ca... Si quelqu'un peut compléter ma réponse, ce serait coool

++
JC
jc_cornic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2006, 13h06   #4
Candidat au titre de Membre du Club
 
Avatar de Pepito2030
 
Inscription : juillet 2006
Messages : 43
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 43
Points : 12
Points : 12
Citation:
Envoyé par Tournevyks
Ouais, le site du zéro déconne...
Y'as de bons tutoriels sur ce site.

Sinon, le tuto du SDZ fonctionnait comme suit :
A chaque fois que quelqu'un se connecte, le script regarde son IP. Si celle-ci n'est pas présente dans la BDD, on l'ajoute, avec le timestamp actuel. Et si elle est présente, on modifie le timestamp pour le mettre à la valeur actuelle.

Quand tu ajoutes à ta BDD une nouvelle IP, ou que tu modifies le Timestamp d'une ip, tu dois regarder celles qui ont un timestamp qui date d'il y a plus de 5 minutes, et les supprimer.

Et pour afficher le nombre d'inscrits, on compte le nombre d'ip.

Je sais pas si j'ai été clair... Sinon, gabylewer@hotmail.com
Je viens de relire leur tuto et en fait ce n'est pas ce qu'il me faut ! ils utilisent les ip pour différencier les visiteurs alors que moi je ne veux afficher que les membres connectés !

Ce que je peux faire c'est reprendre l'id du membre (dans la table membre), créer une nouvelle table whoisonline par exemple et dedans j'y mettrais deux champs "id" et "timestamp" et quand le membre se connectera il inserera un timestamp si le membre ne s'est jamais connecté ou j'updaterais le champ timestamp si ce membre est déja venu.

Je cherche à faire une liste de connecté comme le fait certains tchats du type "tchatche.com". Comment puis je faire pour avoir une liste de connectés en direct ?? et non pas toutes les 5 minutes ?
Pepito2030 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h25.


 
 
 
 
Partenaires

Hébergement Web