Je cherchais depuis deux jours comment afficher la liste des membres connectés sur mon site. J'ai enfiin trouvé la solution optimale.
La plupart des codes que j'ai trouvé sur le Net ont besoin de créer une table qui stocke la liste des utilisateurs connectés, ou pire, des fichiers texte qui stockent ces infos.
De plus il faut sans cesse mettre cette table ou ces fichiers texte à jour.
Et pour finir, les codes trouvés faisaient au moins 50 lignes !
Alors un sentiment de révolte s'est emparé de moi, et j'ai mis au point un système vraiment bête (ie EXTREMEMENT simple) que je n'ai vu pour l'instant nulle part.
Admettons que vous ayez une table cotenant la liste des membres inscrits sur votre site, du style
CREATE TABLE `registered_users` (
`ID` int(10) NOT NULL auto_increment,
`pseudo` text collate latin1_general_ci NOT NULL,
`password` text collate latin1_general_ci NOT NULL,
) ENGINE=MyISAM;
J'ai supprimé les autres champs qui sont inutiles ici.
Il suffit de rajouter une ligne que j'ai appelé lastquerytime, qui représente la date récupérée par time()(donc un BIG INT) de la dernière requête exécutée par un utilisateur.
`lastquerytime` bigint(20) NOT NULL,
Chaque fois qu'un utilisateur connecté et loggué affichera une page, lastquerytime prendra la valeur de time(), c'est-à-dire l'heure actuelle, en secondes.
Il suffit de n'afficher que les utilisateurs dont lastquerytime a moins de 5 minutes... c'est-à-dire les utilisateurs qui ont affiché une page il y a moins de 5 minutes.
Et ce code n'est pas un simple compteur, puisqu'il affiche la liste des pseudos.