Capter l'évènement de fermeture de la fenetre

Eléphant du PHP | 360 Messages

29 mars 2006, 15:32

Bonjour,

Sur mon intranet, j'utilise les variables de session, et j'aimerais que si l'utilisateur ne se déconnecte pas par le lien approprié (s'il clic sur la croix ou qu'il fait Alt+F4), mes variables se détruisent.

Je pensait pouvoir capter l'évènement puis utiliser une méthode du type AJAX, pour lancer la page de déconnexion.

J'ai donc testé la fonction onUnload sur le body de mon site, mais le problème c'est que le script s'exécute aussi lors du raffraichissement de la page.

Connaissez-vous un autre moyen, ou une feinte?

Merci

Eléphant du PHP | 172 Messages

29 mars 2006, 22:18

Salut,

As-tu essayé onClose plutôt que onUnload :?:

Eléphant du PHP | 441 Messages

30 mars 2006, 09:18

un sujet qui pourrait t'intéresser: >>>
Futures Stars par ici >> www.apel-doorn.com
fan d'info et du ... PSG !! :D
Apprendre, comprendre et maîtriser telle est ma devise!
Fan inconditionnel de netvibes

Eléphant du PHP | 360 Messages

30 mars 2006, 20:32

Salut,

As-tu essayé onClose plutôt que onUnload :?:

Je viens de le faire, ca ne fonctionne pas... aucun évènement ne se produit...
Merci que meme :D

Eléphant du PHP | 360 Messages

30 mars 2006, 21:00

un sujet qui pourrait t'intéresser: >>>
Merci à toi, je comprend que mon problème lié au fermeture de fenetre sans déconnexion par ces utilisateurs de ****** (hihi je plaisante, quoi que :lol: ), est plus complexe que je ne l'imaginais...
Cependant par rapport à ce qui est proposé dans l'autre sujet, je me dis qu'il faut mixer les 2, parce que qu'est ce qui arrive à une personne qui ferme sa fenetre avant le timeout, et toujours avant celui ci, se reconnecte ??? Il faut forcément mixer les 2 !!!

Mon problème c'est que je n'ai jamais géré de timeout, ca doit pas être bien compliqué, mais là où je me perds, c'est lorsqu'on parle de timeout avec php.
A part en javascript je ne vois pas comment je pourrais faire ...
Ce que j'entends par là avec PHP, c'est que pour moi, dites moi si je me trompes, étant un langage serveur, le code n'est executé que lors d'un évènement lié à l'utilisateur (validation de formulaire, soumission d'un travail, affichage de menu, données ...).
Alors comment celui ci pourrait-il au bout d'un temps donné, s'exécuté seul, et pire interagir avec un client sans que ce dernier ne lui demande le dialogue. Car un client retrouve toujours le serveur, il est unique, mais le serveur a plusieurs clients et il ne peut leur répondre que s'ils lui ont posé une question....
C'est du pur charabia a ma sauce, je sais pas si je me fais comprendre ou si je passe pour un imbécile... mais c'est ainsi que je le vois. Alors si vous pouvez éclairer mes lanternes, et remplir ma bibliotèque "neurones" de données ce serait cool ! (Si quelqu'un me sort que je n'ai rien compris au PHP ... grrrrr :lol:)

Meme en JS, le problème serait lié au rafraichissement. Il faudrait remettre à zéro le timeout puis au bout de X-minutes afficher un message, et enfin à X minutes fermer la session via AJAX.
Et si Javascript est désactivé ... Oulala le bordel, tout ca pour un clic !

Autre question, comment PHP peut-il déconnecter la première connexion, lorsqu'une deuxième est demandé ???

Merci bicoup!