fermeture d'une session PHP à la fermeture d'une fenetre

fermeture d'une session PHP à la fermeture d'une fenetre - PHP - Programmation

Marsh Posté le 10-06-2002 à 17:29:28    

bonjour,
 
quelqu'un a-t-il réussi à fermer une session lorsque l'utilisateur ferme sa fenêtre ?? (pour faire deux trois instructions à ce moment là)
 
ça doit sûrement être en JS...mais je vois pas....
 
il faudrait en fait un événement genre onunload, mais qui prenne effet seulement quand on ferme la fenetre, et pas quand on passe d'une page à l'autre..

Reply

Marsh Posté le 10-06-2002 à 17:29:28   

Reply

Marsh Posté le 11-06-2002 à 14:08:44    

Ca n'existe pas ????

Reply

Marsh Posté le 11-06-2002 à 14:10:15    

je crois pas

Reply

Marsh Posté le 11-06-2002 à 14:28:38    

c'est vraiment bon à mettre au placard javascript !!

Reply

Marsh Posté le 11-06-2002 à 14:35:35    

Les sessions c'est server-side, donc ton javascript tu peux le mettre à la poubelle ... à moins d'ouvrir une seconde fenêtre quand tu fermes la première, que cette seconde fenêtre contienne du code (php par exemple) qui ferme la session, et que cette même fenêtre s'autodétruise ensuite ... c'est tout ce que je vois.


---------------
"You know the name, You know the number..."
Reply

Marsh Posté le 11-06-2002 à 15:33:19    

- Fred - a écrit a écrit :

Les sessions c'est server-side, donc ton javascript tu peux le mettre à la poubelle ... à moins d'ouvrir une seconde fenêtre quand tu fermes la première, que cette seconde fenêtre contienne du code (php par exemple) qui ferme la session, et que cette même fenêtre s'autodétruise ensuite ... c'est tout ce que je vois.  




 
C'est ça, et c'est vrai que c'est assez bordélique ! En tout cas, pour contourner ce problème il existe des cookies de session.

Reply

Marsh Posté le 11-06-2002 à 15:34:21    

Mais c'est exactement ce que je veux faire....!
server-side (...), je sais bien tout ça..
 
Désolé d'avoir pas été assez précis dès le départ..
 
oui, je cherche juste la capture d'événement qui détecte la fermeture d'une fenêtre, comprends-moi bien, "l'événement fermeture", car il existe bien l'état (window.closed), mais là ça m'oblige à avoir une deuxième fenêtre ouverte pour vérifier si la première est ouverte ou pas (à oublier quoi).  
 
Il faut donc un événement du style onclose (l'inverse de onopen, mais il n'existe pas... :heink: )
 
...

Reply

Marsh Posté le 11-06-2002 à 15:38:33    

d'ailleurs, onopen n'existe pas non plus d'ailleurs, je m'emporte....

Reply

Marsh Posté le 11-06-2002 à 15:45:05    

bah alors!  :sleep:

Reply

Marsh Posté le 11-06-2002 à 15:45:20    

Un truc de ce style non ?

Code :
  1. <?
  2. session_start();
  3. session_destroy();
  4. ?>
  5. <html>
  6. <head>
  7.   <title>Fermeture...</title>
  8. </head>
  9. <body onLoad="window.close()">
  10. </body>
  11. </html>

Reply

Marsh Posté le 11-06-2002 à 15:45:20   

Reply

Marsh Posté le 11-06-2002 à 16:00:23    

oui, ça c'est la page qu'on ouvre quand on veut détruire la session, ya pas de problème,
 
mais j'ai l'impression de me répéter :
(désolé, je semble avoir du mal à me faire comprendre, c'est frustrant!)  
 
ce que je désire trouver, c'est justement ce qui va permettre de lancer cette fenêtre quand on ferme la fenêtre principale !!
 
il me faut donc un capteur d'évémnement JS (sur la fenetre principale) qui ne semble malheureusement pas exister : détecter la fermeture d'une fenêtre !!!

Reply

Marsh Posté le 11-06-2002 à 16:05:49    

OK, j'avais lu un peu vite.
 
Je ne pense pas qu'on puisse faire ce que tu souhaites. Mais pourquoi veux-tu absolument que la session soit détruite coté serveur lorsque le client ferme son navigateur ?

Reply

Marsh Posté le 11-06-2002 à 16:06:22    

Le monsieur t'as dis que c'était pas possible...
 
De plus, si tu te bases la dessus pour délogger qqn ou faire un truc +- important, si il utilise un autre navigateur qui gère pas ca ou qu'il désactive le javascript, tu l'as dans le ...  :sarcastic:  
 
Si tu veux vraiment faire qqchose, tu dois stocker les connectés dans une table  ;)


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 11-06-2002 à 16:41:08    

AAahhh, ça fait du bien de s'entendre dire que c'est pas possible, même si ça m'arrange pas, au moins, je suis fixé..
 
gm_superstar :
mon but, le voici :
un mec arrive sur le site, il se loggue, ouvre ainsi sa session. Le site propose un moteur de veille : il fait une recherche (de liens en l'occurence), et à sa prochaine visite, je lui propose les liens qui ont été ajoutés depuis sa dernière visite (la requête mysql est faite en direct). Bien sûr, il doit pouvoir consulter ces resultats durant toute la session..
 
le pb : je désire mettre à jour la date du moteur (donc mettre la date courante) quand le mec quitte le site. Il y a un bouton "quitter", bien sûr, qui me permet de le faire (et de fermer la session), mais le problème, c'est que les 3/4 des mecs ne se prendront pas la tête à mon avis, et quitteront le site "sans dire aurevoir" : c'est tellement plus simple de fermer le navigateur....
 
Donc en fait la fermeture de la session, je m'en fous un peu, mais ce qu'il faut, c'est trouver le moyen de lancer le fichier que tu disais tout à l'heure, ou je mets l'update mysql...  
 
donc, je dois détecter quand le mec quitte le site, pour alors mettre la date à jour. Mais ça semble bel et bien impossible si il n'appuie pas sur "quitter"...
 
 
Bon, je pense que je démerderai (ya toujours une solution, mais ça sera du bricolage....   :sweat:  )
 
 
zion:
"si il utilise un autre navigateur qui gère pas ca ou qu'il désactive le javascript..."
 
c'est vrai, c'est vrai... mais je m'en fous, je ne fais pas un site commercial, c'est 'pour l'instant' pour mon entourage. Je pense qu'il faut faire des choix de toute façons : si je veux faire un truc en flash par ex, je vais pas me prendre la tête, je le fais, et fuck à ceux qui veulent pas télécharger le plugin... Et si des mecs utilisent encore netscape 2.0, fuck eux aussi, c'est pas pas difficile de télécharegr une version plus récente...!!
 
Excuse-moi, je m'emporte, mais c'est pas posssible de faire un site accessible à tous, et ça me désole.....
 
 
"Si tu veux vraiment faire qqchose, tu dois stocker les connectés dans une table.."
 
là je vois pas trop : c'est toujours le même problème, quand ils quittent le site sans appuyer sur quitter .???

Reply

Marsh Posté le 11-06-2002 à 17:15:51    

ddenoyes a écrit a écrit :

zion:
 
c'est vrai, c'est vrai... mais je m'en fous, je ne fais pas un site commercial, c'est 'pour l'instant' pour mon entourage. Je pense qu'il faut faire des choix de toute façons : si je veux faire un truc en flash par ex, je vais pas me prendre la tête, je le fais, et fuck à ceux qui veulent pas télécharger le plugin... Et si des mecs utilisent encore netscape 2.0, fuck eux aussi, c'est pas pas difficile de télécharegr une version plus récente...!!




 
Ouai mais Mozilla/Opera ne réagissent pas vraiment pareil, et pourtant c'est des browsers récents hein ;)
De plus, même si tu arrivais à faire un truc en javascript ce serait pas fiable.
 
 

ddenoyes a écrit a écrit :

zion:
Excuse-moi, je m'emporte, mais c'est pas posssible de faire un site accessible à tous, et ça me désole.....




Ouai mais quand je vois un site:
Optimisé pour Internet Explorer en 800*600 32bits, ca me désole...  
 

ddenoyes a écrit a écrit :

zion:
là je vois pas trop : c'est toujours le même problème, quand ils quittent le site sans appuyer sur quitter .???  




Benh tu vérifies a chaque page si y a pas un mec qui s'est déloggé depuis...


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 11-06-2002 à 23:40:17    

"Ouai mais Mozilla/Opera ne réagissent pas vraiment pareil, et pourtant c'est des browsers récents hein ;)  
De plus, même si tu arrivais à faire un truc en javascript ce serait pas fiable. "
 
mozilla ok, c nickel, mais opera n'est pas très respectueux des normes...donc tant pis pour lui..  
 
 
 
 
"Ouai mais quand je vois un site:  
Optimisé pour Internet Explorer en 800*600 32bits, ca me désole...  "
 
c'est sûr, faut pas pousser non plus... :)

Reply

Marsh Posté le 11-06-2002 à 23:45:42    

ddenoyes a écrit a écrit :

le pb : je désire mettre à jour la date du moteur (donc mettre la date courante) quand le mec quitte le site.



Peut-être qu'une solution serait de mettre cette date à jour à chaque page générée. Comme ça, au mieux, la date de mise à jour sera la date de la dernière exécution d'un script PHP.
Reste à voir si cette solution peut "s'intégrer" à ton appli.

Reply

Marsh Posté le 12-06-2002 à 03:10:17    

tu peux pas dire que quand il quitte la page (onUnload) tu mets l'heure de fin dans ta table.  
 
mais s'il a juste changé de page, tu compares l'heure de l'ouverture de la nouvelle page avec celle de ta table. Si c'est plus petit qu'une minute, ben c'est qu'il n'a pas quitté le site et donc t'efface la valeur dans ta table.
 
 
 
je sais pas si c'est clair mais il est tard :þ
 
puis je sais pas si ca marche, j'ai pas vraiment réfléchié :na:


---------------
oui oui
Reply

Marsh Posté le 12-06-2002 à 09:48:10    

en js dans le body

Code :
  1. <body onunload="window.open('fenetre.html');" >

ou truc du genre ?


---------------
Perdu ? Vous êtes ici : --> *
Reply

Marsh Posté le 12-06-2002 à 16:04:22    

ddenoyes a écrit a écrit :

Excuse-moi, je m'emporte, mais c'est pas posssible de faire un site accessible à tous, et ça me désole.....



Pour le fait qu'il failles faire des choix, je suis entièrement d'accord avec toi. Tout dépends des "profils web" (navigateurs, réglages du navigateur, réglages de l'écran, type de conection au net) de la cible visé pour savoir si un choix n'est pas dangeureux pour la survie de ton site.
Par contre, dire qu'il est impossible de faire un site accessible à tous, je trouves que c'est faux.
Dans mon site, la seule partie du site qu'est inaccéssible à certain, c'est le chat et encore par ce que j'y utilise des frames pour avoir à la fois la discution, la liste des personnes en ligne et une zone de saisie qui ne s'efface pas à chaque rafraichissement du reste.
Tout le reste (forum, liste des liens, page web externe mais retravaillés ...) est accéssible à tout le monde, même à celui qui utilise un navigateur en mode texte ou celui qui utilise des version antédiluvienne des navigateurs actuels (ou passé).
 
Par contre, c'est sur que si tu pars desuite sur un sytème en flash alors tout le monde ne pouras pas utiliser ton site.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed