2010-07-28 8 views
3

Quel est le meilleur moyen de garder une trace du nombre d'utilisateurs et d'invités en ligne? Im faire un forum pour le plaisir et l'apprentissagecomment gérer le statut en ligne. invité, utilisateurs etc

Maintenant j'ai un 2 champs dans la table des utilisateurs appelés is_online et last_access_time.

Si la durée actuelle est de 5 minutes ou plus que last_access_time, la valeur is_online est remise à zéro. Et si le navigateur utilisateur actualise le navigateur, je le mets à 1.

Mais qu'en est-il des clients? Je veux garder une trace sur combien d'invités sont aussi

Une autre chose qui serait vraiment cool est de montrer quelle page l'utilisateur regarde. et sur la page, fil de discussion par exemple, 5 invités, Homer et Shomer regardent cette page. Mais comment dois-je structurer cela? Hmm peut-être que je devrais faire une autre question pour ça.

je ne sais pas ce que je dois faire

Que proposez-vous?

+0

+1 et + fav. Bonne question, j'attendrai les réponses aussi. – CuSS

Répondre

0

Vous ne pouvez pas savoir avec certitude quelle page un utilisateur affiche, mais vous pouvez garder une trace de la dernière page consultée. Chaque fois que vous envoyez une page à un utilisateur, enregistrez le chemin de cette page dans une ligne de base de données qui lui est associée. Voila. Pour conserver le nombre d'invités, je suggère de suivre le nombre de combinaisons IP/HTTP-User-Agent distinctes non authentifiées vues sur une page donnée au cours des X dernières minutes.

1

J'utilise les cookies pour cela. Définissez un cookie lorsque l'utilisateur entre (vérifiez d'abord pour vous assurer qu'il n'existe pas). Un moyen facile de générer un identifiant unique pour cet utilisateur est de hacher leur adresse IP plus l'heure actuelle.

$id = md5($_SERVER['REMOTE_ADDR'] . time()); 

Store qui id dans votre base de données et l'utiliser pour faire référence à

Vous pouvez vérifier à quelle page ils sont affichés en saisissant soit $ _SERVER [ 'PHP_SELF'] ou $ _SERVER [ 'REQUEST_URI'] près de la haut de votre source php. Stockez cela dans la table. Je vais jeter un oeil à l'explication de php.net de ce qui est stocké dans le global _SERVER, car il devrait aider un peu si vous trouvez que vous avez besoin de plus que le document sur lequel ils sont (ex index.php). Found here.

Vous devrez peut-être séparer la chaîne de requête utilisée pour accéder à cette page, analyser les variables pour déterminer la page qu'elles demandent. D'une manière ou d'une autre, tout ceci pourrait se faire par l'intermédiaire de cookies, ou simplement utiliser un seul cookie pour stocker l'identifiant unique et utiliser votre table pour stocker tout le reste.

Questions connexes