Connectés et déconnectés
10 messages
• Page 1 sur 1
- davidtennis
- WRInaute discret

- Messages: 55
- Inscription: 5 Avr 2007
Connectés et déconnectés
Bonjour,
Je gère un site avec un système d'authentification d'utilisateurs (avec les traditionnels session_start()).
J'aimerais que les utilisateurs puissent savoir qui est connecté. Quelle est selon vous la meilleure façon de faire ça ?
Je pourrais avoir une table des connectés, et les connexions sont retirées de la table quand un utilisateur clique sur "Se Déconnecter". Seulement, si un utilisateur ferme son navigateur à la place, son entrée dans la table des connectées ne sera pas supprimée. Est-ce qu'il y a dans ce cas une meilleure solution qu'un time-out ?
Merci
Je gère un site avec un système d'authentification d'utilisateurs (avec les traditionnels session_start()).
J'aimerais que les utilisateurs puissent savoir qui est connecté. Quelle est selon vous la meilleure façon de faire ça ?
Je pourrais avoir une table des connectés, et les connexions sont retirées de la table quand un utilisateur clique sur "Se Déconnecter". Seulement, si un utilisateur ferme son navigateur à la place, son entrée dans la table des connectées ne sera pas supprimée. Est-ce qu'il y a dans ce cas une meilleure solution qu'un time-out ?
Merci
- zim3
- WRInaute discret

- Messages: 189
- Inscription: 17 Mar 2007
Bah tout simplement, a chaque chargement de page, si le user est connecté, tu créer un enregistrement dans une table avec pseudo/timestamp.
Et de temps à autres, tu fais un delete de tous les enregistrements ayant un timestamp actuelle>timestamp-5 secondes par exemple...
Et de temps à autres, tu fais un delete de tous les enregistrements ayant un timestamp actuelle>timestamp-5 secondes par exemple...
- objectifweb
- WRInaute discret

- Messages: 130
- Inscription: 6 Oct 2004
Bonjour,
Je ne suis pas spécialiste ajax ou flash mais il est possible de mettre dans ta page un petit flash voir invisible mais qui lance une requête par exemple toutes les secondes avec le pseudo en paramètre, dés que le visiteur ferme sa page, tu nettoies la db des visiteurs par exemple toutes les 3 secondes...
La même chose est possible en ajax puisque les appels à la db se font sans changer de page, j'espère avoir été clair mais de toute façon tu seras toujours obligé de travailler avec un timeout quelque part
Pat
Je ne suis pas spécialiste ajax ou flash mais il est possible de mettre dans ta page un petit flash voir invisible mais qui lance une requête par exemple toutes les secondes avec le pseudo en paramètre, dés que le visiteur ferme sa page, tu nettoies la db des visiteurs par exemple toutes les 3 secondes...
La même chose est possible en ajax puisque les appels à la db se font sans changer de page, j'espère avoir été clair mais de toute façon tu seras toujours obligé de travailler avec un timeout quelque part
Pat
- ekay
- WRInaute discret

- Messages: 57
- Inscription: 7 Mar 2005
lol..
oui c bien ca..
tu peux simplement mettre une ptite iframe qui se reactualise toutes les x secondes pour updater le timestamp du user..
effectivement il se peut que la personne soit encore sur le site et qu'elle soit en train de preparer a bouffer ce qui ne doit pas obligatoirement la deloguer.
Par contre fais attention car c'est bouffant.. sachant que chaque insertion et chaque delete sur la page obligera une reconstruction de l'index.. ! sans parler des pertes et de la fragmentation du disque que ca peut causer
Dans ce cas utilise plutot une table memoire (type heap) ca t'evitera ce probleme et rendra les operations nettement plus rapidement
oui c bien ca..
tu peux simplement mettre une ptite iframe qui se reactualise toutes les x secondes pour updater le timestamp du user..
effectivement il se peut que la personne soit encore sur le site et qu'elle soit en train de preparer a bouffer ce qui ne doit pas obligatoirement la deloguer.
Par contre fais attention car c'est bouffant.. sachant que chaque insertion et chaque delete sur la page obligera une reconstruction de l'index.. ! sans parler des pertes et de la fragmentation du disque que ca peut causer
Dans ce cas utilise plutot une table memoire (type heap) ca t'evitera ce probleme et rendra les operations nettement plus rapidement
- davidtennis
- WRInaute discret

- Messages: 55
- Inscription: 5 Avr 2007
Donc une solution serait de mettre à jour un timestamp à chaque nouvelle page ou à toutes les x secondes puis virer les utilisateurs dont le timestamp est vieux de + de y secondes.
Mais ça impliquerait
1) pas mal de requêtes sql dans le cas de l'update toutes les x secondes
2) il faudrait une tâche cron régulièrement pour éliminer les "vieux" timestamp
tout cela me parait moyennement compatible avec mon hébergement mutualisé (3 connexions max à la bdd + pas de tâches cron). Je me trompe ?
Mais ça impliquerait
1) pas mal de requêtes sql dans le cas de l'update toutes les x secondes
2) il faudrait une tâche cron régulièrement pour éliminer les "vieux" timestamp
tout cela me parait moyennement compatible avec mon hébergement mutualisé (3 connexions max à la bdd + pas de tâches cron). Je me trompe ?
10 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- 130 internautes français déconnectés pour partage illégal...
- Nombre de connectés
- Liste des connectés
- [Script PHP] connectés
- Beacoup de connectés->quel hébergeur?
- Trop de connectés en même temps
- Liste des utilisateurs connectés
- Comment connaître le nombre de connectés au chat ?
- 100 slurps connectés en permanence depuis 3h
- Rubriques réservées aux utilisateurs inscrits et connectés
- Google AdWords Editor - 25-01-2006
- Personnalisation des résultats Google pour tous les utilisateurs - 14-12-2009
- Google veut connecter votre frigo à Internet - 01-04-2010
- Barre d'outils Google pour Firefox : version 3 - 13-12-2006
- Etude du BlockRank, un algorithme de calcul rapide du PageRank - 19-03-2003
- Votre page d'accueil Google personnalisée en français - 03-11-2005
- Quelques nouveautés dans le forum WebRankInfo - 17-08-2006
- Google vous recommande des sites à visiter - 19-04-2007
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


