Une liste des connectés sur son site !

Résolu/Fermé
Utilisateur anonyme - Modifié par endymionn le 15/05/2011 à 14:10
Bilow Messages postés 1022 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 - 18 mai 2011 à 20:49
Bonjour, je suis en train de créer un espace membres, et je voudrais créer une liste des connectés dans les 5 dernières minutes par exemple.
Mais je ne sais pas comment m'y prendre.
Je penserai créer une table connectés avec le pseudo et le temps de dernière connection qui ne récupère que les membres n'ayant une date proche du temps actuel. Auriez-vous une autre idée ???
Merci !!!!




A voir également:

4 réponses

Bilow Messages postés 1022 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
15 mai 2011 à 00:46
Salut,

Avec l'AJAX c'est plus compliqué et à quelques seconds près...

Voici une des possibilités :

A chaque fois que l'utilisateur appelle une page, on enregistre ou on met à jour son IP ($_SERVER['REMOTE_ADDR']), et l'heure actuelle ( time() ).

Pour connaître le nombre de clients, deux étapes :
- Supprimer les entrées datant de plus de 5 minutes (en considérant que les utilisateurs n'ayant pas navigué depuis 5 minutes sont partis);
- Compter le nombre d'entrées restantes ( SELECT COUNT(*) FROM ... ).

Pour être plus précis (à quelques secondes près), on peut en effet utiliser un système d'AJAX, mais là il faut utiliser Javascript (avec XMLHTTPRequest) et ça devient dur. Mais c'est possible (et peu utile je trouve).

;-)
1
loveparade Messages postés 506 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 14 mai 2011 60
Modifié par loveparade le 14/05/2011 à 19:24
Oui tu peux maintenir en DB les utilisateurs logues a leur session utilisateur avec les dates des dernières requêtes faites sur le site. Tu maintiens ca a jour en Ajax par exemple comme ca pas trop de soucis. Puis toutes les X minutes inactivité, tu ferme leur session comme ca tu as une liste proche de la vérité selon une durée.

join us now and share the software
you'll be free hackers you'll be free
0
Utilisateur anonyme
15 mai 2011 à 14:08
Merci pour toutes ces idées, je vais donc faire une façon plutôt proche des vôtres, sur chaque page, je met un code qui récupère la sessions contenant le login du membre et qui récupère le time().
Il les insert dans une table "connectes" et un code situé dans un <div></div>affiche les pseudos des membres dont la date n'est pas très éloigné (5min). Et donc se système est assez précis, car même si il le membre ne change pas de page pensant 10min, il apparaîtra déconnecté auprès des autres mais dès qu'il rechangera de page, il sera reconnecté.

0
Bilow Messages postés 1022 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
16 mai 2011 à 22:36
Ok, c'est bon comme système. Essaie maintenant de le coder... Tu peux toujours venir ici si tu as un problème, mais cherche avant ;-)
0
Ok j'ai quelques soucis avec la partie qui affiche les pseudos. C'est le time() qui m'embête.
Je cherche et en cas de souci(s), j'appelle à l'aide !!
0
Bilow Messages postés 1022 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
18 mai 2011 à 20:49
Quand un visiteur connecté ou non appelle une page, tu introduis dans ta base MySQL :
- Le pseudo de la session ou l'IP
- Et le temps ;-)
0