Chat PHP : déconnexion d'utilisateur [Résolu]

Messages postés
210
Date d'inscription
mercredi 4 août 2004
Statut
Membre
Dernière intervention
6 avril 2009
- - Dernière réponse : 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
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17
3
Merci
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.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 128 internautes nous ont dit merci ce mois-ci

Commenter la réponse de malalam
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
0
Merci
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
Commenter la réponse de Teclis01
Messages postés
210
Date d'inscription
mercredi 4 août 2004
Statut
Membre
Dernière intervention
6 avril 2009
1
0
Merci
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
Commenter la réponse de cs_mouahaha
Messages postés
210
Date d'inscription
mercredi 4 août 2004
Statut
Membre
Dernière intervention
6 avril 2009
1
0
Merci
Ok je cherchais un truc plus radical, plus clean, mais je vais faire comme ca.

Merci beaucoup
Commenter la réponse de cs_mouahaha
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17
0
Merci
Plus clean que ça ? C'est clean comme façon de faire.
Commenter la réponse de malalam
Messages postés
210
Date d'inscription
mercredi 4 août 2004
Statut
Membre
Dernière intervention
6 avril 2009
1
0
Merci
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.
Commenter la réponse de cs_mouahaha
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17
0
Merci
Non c'est pas possible ^^
Commenter la réponse de malalam
Messages postés
38
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
23 septembre 2013
0
Merci
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
Commenter la réponse de cs_foxmaster