Maitriser la connexion d'un membre
11 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
Maitriser la connexion d'un membre
Bonjour,
Ayant développé une application nécessitant la connexion par identifiants, j'ai mis à dispo un lien de déconnexion pour connaitre si un membre est connecté ou non sur le site mais mon problème majeur est si celui-ci clique sur la croix de son navigateur !
Connaissez-vous une astuce permettant de savoir si le membre quitte le site en cliquant sur la croix de son navigateur?
Merci de votre aide!
Ayant développé une application nécessitant la connexion par identifiants, j'ai mis à dispo un lien de déconnexion pour connaitre si un membre est connecté ou non sur le site mais mon problème majeur est si celui-ci clique sur la croix de son navigateur !
Connaissez-vous une astuce permettant de savoir si le membre quitte le site en cliquant sur la croix de son navigateur?
Merci de votre aide!
en fouillant les entrailles du web, il serait question de l'aide du JS (onUnLoad) pour pouvoir supprimer la session en cours et effectuer la mise à jour sur ma table connexion...
Mais il semblerait que des problèmes perdurent :
désactivation du JS, interprétation différentes sur les navigateurs, etc...
Prise de tête !
oui c'est aussi en place mais cela n'empêche mon internaute de fermer via la croix et me laisser en plan... ou alors, je dois aussi faire une tache cron qui va tester les connexions supérieur à la date actuelle et les supprimer mais bonjour, les ressources utilisées pour ce truc.
Mais comme c'est pour un client qui tient à être le + proche possible de l'instant T, il donne à + ou - 3 min d'intervalle pour connaitre si internaute connecté ou non !
Mais il semblerait que des problèmes perdurent :
désactivation du JS, interprétation différentes sur les navigateurs, etc...
Prise de tête !
inactivité au bout de x minutes....
oui c'est aussi en place mais cela n'empêche mon internaute de fermer via la croix et me laisser en plan... ou alors, je dois aussi faire une tache cron qui va tester les connexions supérieur à la date actuelle et les supprimer mais bonjour, les ressources utilisées pour ce truc.
Mais comme c'est pour un client qui tient à être le + proche possible de l'instant T, il donne à + ou - 3 min d'intervalle pour connaitre si internaute connecté ou non !
-

screuscreu - WRInaute passionné

- Messages: 936
- Inscription: Lun Jan 14, 2008 12:14
1-
Le meilleur moyen c'est à chaque chargement de page de vérifier en session la dernière fois qu'il a envoyé son status. Dès que tu dépasse 1min, tu envois une mise à jour dans ta BDD sur le champ "dernière activité" et avec un cron toutes les 3 min tu check tout.
Comme cela au pire tu as un UPDATE toutes les minutes par user + un cron toutes les 3min sur un critère super sélectif de date ... donc je pense pas que cela te pourrisse ton serveur ... où alors faut acheter plus gros.
2-
Tu peux sinon faire appel à des services externes qui font de même. La différence est que c'est eux qui stoque l'info. Toutes les 3min tu vas checker un lien qui te renvoi les nouveaux users en ligne et ceux qui viennent de partir.
Pour l'avoir utilisé sur un gros site, c'est pas super fiable ... il reste souvent des gens connecté 24h/24...
Je te conseille la façon manuelle ... malheureusement.
3-
En plus ton problème de js : si qqn quitte le processus du navigateur / reboot en hard son ordi > ça m'étonnerais que ton js dise qqch !!!
EDIT : lien pour le point 2 : "userplane" ... mais je déconseille.
Le meilleur moyen c'est à chaque chargement de page de vérifier en session la dernière fois qu'il a envoyé son status. Dès que tu dépasse 1min, tu envois une mise à jour dans ta BDD sur le champ "dernière activité" et avec un cron toutes les 3 min tu check tout.
Comme cela au pire tu as un UPDATE toutes les minutes par user + un cron toutes les 3min sur un critère super sélectif de date ... donc je pense pas que cela te pourrisse ton serveur ... où alors faut acheter plus gros.
2-
Tu peux sinon faire appel à des services externes qui font de même. La différence est que c'est eux qui stoque l'info. Toutes les 3min tu vas checker un lien qui te renvoi les nouveaux users en ligne et ceux qui viennent de partir.
Pour l'avoir utilisé sur un gros site, c'est pas super fiable ... il reste souvent des gens connecté 24h/24...
Je te conseille la façon manuelle ... malheureusement.
3-
En plus ton problème de js : si qqn quitte le processus du navigateur / reboot en hard son ordi > ça m'étonnerais que ton js dise qqch !!!
EDIT : lien pour le point 2 : "userplane" ... mais je déconseille.
screuscreu a écrit:1-
Le meilleur moyen c'est à chaque chargement de page de vérifier en session la dernière fois qu'il a envoyé son status. Dès que tu dépasse 1min, tu envois une mise à jour dans ta BDD sur le champ "dernière activité" et avec un cron toutes les 3 min tu check tout.
Comme cela au pire tu as un UPDATE toutes les minutes par user + un cron toutes les 3min sur un critère super sélectif de date ... donc je pense pas que cela te pourrisse ton serveur ... où alors faut acheter plus gros.
j'ai pas trop compris cette solution ...
pour rebondir sur le sujet j'ai un souci proche sur une webapplication, je voudrais interdire les accès concurrents : quand dupond ouvre une fiche client, alors je voudrais interdire a michel d'accéder à la même fiche, ou plutôt lui interdire de modifier cette fiche
comment savoir quand une fiche est ouverte chez quelqu'un, en prenant en compte, les fiches qu'on oublie de fermer à la fermeture de session automatique au bout de 30 min, en prenant en compte aussi les fermetures de navigateur
-

screuscreu - WRInaute passionné

- Messages: 936
- Inscription: Lun Jan 14, 2008 12:14
Je vais tenter de clarifier.
Principe de base :
A chaque chargement de page de l'utilisateur 3 (son id), on fait un :
Toutes les 3 min on fait ça par un script Cron
Optimisation
Pour éviter d'accéder à la base à chaque chargement de page ... ce qui peut être toutes les 10s si l'utilisateur cherche de l'info, on met en place un system de Session (ou Cookie au choix)
A chaque chargement de page :
Ce qui fait que l'on met à jour la BDD que toutes les 1min au max ... gain énorme pour des cliqueurs fous
Pareil pour le CRON
J'espère avoir été plus clair
A chaque chargement de page de l'utilisateur 3 (son id), on fait un :
- Code: Tout sélectionner
UPDATE users SET last_coucou = NOW(), online = 1 WHERE id = 3
Toutes les 3 min on fait ça par un script Cron
- Code: Tout sélectionner
UPDATE users SET online = 0 WHERE last_coucou < NOW() -3min
Pour éviter d'accéder à la base à chaque chargement de page ... ce qui peut être toutes les 10s si l'utilisateur cherche de l'info, on met en place un system de Session (ou Cookie au choix)
A chaque chargement de page :
- Code: Tout sélectionner
if (Session.last_coucou == null ||Session.last_coucou < NOW()-1min ){
UPDATE users SET last_coucou = NOW(), online = 1 WHERE id = 3
Session.last_coucou = NOW()
}else{
//RIEN
}
Ce qui fait que l'on met à jour la BDD que toutes les 1min au max ... gain énorme pour des cliqueurs fous
Pareil pour le CRON
J'espère avoir été plus clair
ok merci d'être explicite dans tes explications mais en faite, le site en question est un chat webcam donc les connexions peuvent être longues.
Biensur tant que le user se manifeste, y'a pas de prob !
Mais il peut très bien vouloir rester connecté sans bouger et là, c'est le prob de mise à jour à 3 min !!
Biensur tant que le user se manifeste, y'a pas de prob !
Mais il peut très bien vouloir rester connecté sans bouger et là, c'est le prob de mise à jour à 3 min !!
-

screuscreu - WRInaute passionné

- Messages: 936
- Inscription: Lun Jan 14, 2008 12:14
Tu as aucune interaction avec l'interface avec ton chat ?
tu peux pas envoyer une petite requête ajax comme si de rien n'était pendant qu'il fait des trucs de chat ?
tu peux pas envoyer une petite requête ajax comme si de rien n'était pendant qu'il fait des trucs de chat ?
en faite, le chat va être en flash et j'ai cru comprendre que via flash, tu pouvais justement préciser quand ton user ferme la fenêtre de l'application.
mais ensuite, pour reprendre l'architecture HTML, je reprendrais mon traitement via cron et script php intégré dans les pages internes.
Je crois que là, je devrais être carré
mais ensuite, pour reprendre l'architecture HTML, je reprendrais mon traitement via cron et script php intégré dans les pages internes.
Je crois que là, je devrais être carré
11 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Votez pour les meilleurs WRInautes de 2007 !
- Honda va inclure Google Earth dans son système de navigation par satellite
- Lancement du cursus WebMarketing de Ranking Metrics
- Les meilleurs WRInautes en 2007
- Barre d'outils Google pour Firefox : version 3
- Une communauté WebRankInfo sur Orkut
- Live Search corrige le problème de referrers
- Google commence à indexer les formulaires
- Forum WebRankInfo : un membre du moteur de recherche Voila.fr vient discuter
- AdSense Tracking : statistiques détaillées sur les clics AdSense
Consultez la description détaillée des produits ou services de Google suivants : GoogleGuy, Orkut
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités



le forum