Pb de déconnexion
melissa
-
car0 -
car0 -
Bonjour,
j'ai un site en php avec sur la premiere page un formulaire d'identification.
Une fois loggué, $_SESSION["id"] prend la valeur du login saisi, et je passe un flag à 1 dans ma base de données pour préciser que le membre est en ligne.
POur la déconnexion, si l'utilisateur clique sur un lien "se deconnecter", tous marche, je remet le flag à 0 et la variable de session à vide.
Mais s'il ferme le navigateur, la variable de session est détruite au bout d'un temps x ( défini dans les paramètres du serveur) mais le flag de la base de données n'est donc pas changé (il reste à 1). Donc le membre est toujours considéré comme online.
Comment remédier à ce probleme pour que quand le navigateur se ferme, la deconnexion soit effective ?
Javais penser faire un script sur le unload de la page, mais comment differencier le unload du refresh ????
Merci d'avance
xxxxxxx
meilssa
xxxxxxx
j'ai un site en php avec sur la premiere page un formulaire d'identification.
Une fois loggué, $_SESSION["id"] prend la valeur du login saisi, et je passe un flag à 1 dans ma base de données pour préciser que le membre est en ligne.
POur la déconnexion, si l'utilisateur clique sur un lien "se deconnecter", tous marche, je remet le flag à 0 et la variable de session à vide.
Mais s'il ferme le navigateur, la variable de session est détruite au bout d'un temps x ( défini dans les paramètres du serveur) mais le flag de la base de données n'est donc pas changé (il reste à 1). Donc le membre est toujours considéré comme online.
Comment remédier à ce probleme pour que quand le navigateur se ferme, la deconnexion soit effective ?
Javais penser faire un script sur le unload de la page, mais comment differencier le unload du refresh ????
Merci d'avance
xxxxxxx
meilssa
xxxxxxx
1 réponse
Bonjour Mélissa,
J'aurais peut-être une autre suggestion : raffiner ton flag boolean pour un datetime "derniere action". À chaque fois que ton usager fait quelque chose, tu mets à jour "derniere action" = now(). Ta liste de membres online devient alors tous les membres qui ont fait quelque chose depuis les 30 (ou comme tu veux) dernières minutes. Donc tu fais un update du flag à chaque reload de page, sauf pour la déconnexion.
Je ne sais pas si ça peut convenir à ta situation... Dis-moi comment tu as réglé ton problème. Ça m'intéresse :-)
Caro
J'aurais peut-être une autre suggestion : raffiner ton flag boolean pour un datetime "derniere action". À chaque fois que ton usager fait quelque chose, tu mets à jour "derniere action" = now(). Ta liste de membres online devient alors tous les membres qui ont fait quelque chose depuis les 30 (ou comme tu veux) dernières minutes. Donc tu fais un update du flag à chaque reload de page, sauf pour la déconnexion.
Je ne sais pas si ça peut convenir à ta situation... Dis-moi comment tu as réglé ton problème. Ça m'intéresse :-)
Caro