Page 1 sur 1

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

Posté : 29 mars 2006, 15:32
par Snoops
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

Posté : 29 mars 2006, 22:18
par PhilFree
Salut,

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

Posté : 30 mars 2006, 09:18
par starkeus
un sujet qui pourrait t'intéresser: >>>

Posté : 30 mars 2006, 20:32
par Snoops
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

Posté : 30 mars 2006, 21:00
par Snoops
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!