Chat PHP : déconnexion d'utilisateur

Résolu
cs_mouahaha Messages postés 209 Date d'inscription mercredi 4 août 2004 Statut Membre Dernière intervention 6 avril 2009 - 25 avril 2006 à 10:05
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013 - 18 oct. 2007 à 15:12
Salut à tous...

Je suis en train de programmer un petit chat en php/sql, et je me
retrouve face à un problème de taille : quand les utilisateurs ferment
la fenêtre du navigateur sans se déconnecter, ils apparaissent toujours
en ligne.

En fait quand ils se connectent, un script update le statut dans la DB
pour le mettre sur 'online', et j'ai un script pour la déconnexion qui
update à nouveau pour 'offline'.

Du coup quand on quitte sans executer le script de logout, on est toujours 'online'...

J'ai essayé un truc du genre pour lancer le
script de logout au moment de la fermeture mais ca fonctionne pas avec
Firefox.

J'ai vu que la plupart des codes de chat utilisent les dates et heures
d'activité des utilisateurs, mais je ne comprends pas vraiment comment
ca fonctionne...

Si vous pouviez me donner un petit coup de pouce, ce serait vraiment super sympa...

Merci

8 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
25 avril 2006 à 11:07
Hello,

le fonctionnement du timeout est simple.
A chaque fois que ton utilisateur fait un truc, tu updates son champ timeout, et tu vérifies celui des autres utilisateurs. Tu te places une barre, genre 15mn...ou 10...ou 5, enfin on s'en fout ;-)
Si le temps présent dans le champ timeout d'un des utilisateurs est > au temps actuel + ta barre limite, tu le considères comme déconnecté, donc offline.
3
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
25 avril 2006 à 10:56
alors pour te répondre même si je suis pas sur de ces réponses ...

En javascript peut etre peux tu le faire sinon il y a un meta qui
permet le refresh... si tu peux refresh la colonne ou il y a les
connectés il suffit ensuite de mettre a jour la db en faisant des
requetes SQL...

Dans les 2 cas je ne peux te certifier si cela marche ou non.

Si cela peut t aider voici le meta de refresh

<meta http-equiv ="refresh" content="30;URL=./tchat.php">

je l utilise pour un tchat fait en 40 lignes tout moche mais qui permet a moi
et certains collegues d etre tranquil a papoter pdt notre stage ^^


-------------------------------------------------------------------------------------------------------

Il vaut mieux poser une question et passer pour bête que le rester
toute sa vie
0
cs_mouahaha Messages postés 209 Date d'inscription mercredi 4 août 2004 Statut Membre Dernière intervention 6 avril 2009 1
25 avril 2006 à 11:00
Teclis --> En fait ta liste de connectés elle est créée à partir de
quoi ? parce que moi elle est créée à partir de la base de données,
donc si ils sont toujours online dans la base, ils seront aussi dans la
liste, même si ils on quitté et même si on rafraichit la page
0
cs_mouahaha Messages postés 209 Date d'inscription mercredi 4 août 2004 Statut Membre Dernière intervention 6 avril 2009 1
25 avril 2006 à 11:11
Ok je cherchais un truc plus radical, plus clean, mais je vais faire comme ca.

Merci beaucoup
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
25 avril 2006 à 11:18
Plus clean que ça ? C'est clean comme façon de faire.
0
cs_mouahaha Messages postés 209 Date d'inscription mercredi 4 août 2004 Statut Membre Dernière intervention 6 avril 2009 1
25 avril 2006 à 11:21
non je voulais dire plus directe, genre "ah oui ce mec là a fermé son
navigateur mais ne s'est pas déconnecté avant, il faut donc le mettre
offline..."

bon d'accord c'est pas possible ;-)

merci bien, j'accepte la réponse.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
25 avril 2006 à 11:32
Non c'est pas possible ^^
0
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
18 oct. 2007 à 15:12
Salut, je voulais savoir si tu avais trouvé une solution à ton probleme? si cela n'est pas le cas, j'ai peut etre une solution a te proposer, j'ai moi aussi réalisé un "tchat" enfin c'est pas encore terminé que tu peux tester à cette adresse là:

http://foxmaster.info/tchatv1/authentification.php

je vais mettre également les sources à disposition ici je pense bientot, donc si tu est interressé fais moi signe

Jérôme
0
Rejoignez-nous