Appli Hour! lol! ou comment gerer une déconnection particulière?

Eléphant du PHP | 58 Messages

17 janv. 2008, 19:22

Après une heure de recherche Google ou PHP France(évitons les foudres des plus aguerris! :wink: ), je ne trouve pas exactement de réponse à ma question :

J'ai un site classique où je gère les connectés sans pb... ce site permet de jouer à un jeu sous Flash...donc j'ouvre une session, je stocke l'IP, Le pseudo et le timestamp dans la base et le gars lance l'appli Flash... Dans cette appli s'affiche le nom des connectés (imaginons un tchat bien que cela ne soit pas le cas mais ça illustre bien mon besoin);donc si le gars ferme tout à la sauvage, il reste AFFICHE connecté pour les joueurs sous Flash (pas de modif de la base)..... vous allez me dire "facileu!", il suffit de régler la durée maxi d'une session à 5 minutes mais si le joueur joue pendant 1 heure, il n'est pas déconnecté, et pourtant il n'actualise pas ou ne visite pas les pages de mon site, son timestamp n'est pas actualisé et sa session est détruite...

Bref! deux questions :
1) comment gérer ce problème?
2) Peux t on exécuter simplement un code à la fermeture de la page principale en PHP (mise à jour de la base en "déconnecté" en dehors d'une durée trop longue de session ou du click sur déconnecté)

Merci. :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

17 janv. 2008, 22:23

Ca doit être dans le forum javascript que le sujet a été abordé et à défaut de solution idéale y avait eu pas mal de suggestions interessantes, comme l'utilisation des attributs onUnload ou onBeforeUnload pour détecter le départ de la page, le fait de le faire dans une frame de 100% afin de différencier le départ pour cause de navigation dans le site et celui pour départ du site...

Sinon une autre solution simple consiste à implémenter la modif de la base qui manque à ton appli flash pour signaler au serveur que le visiteur est toujours là :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...