Fin de session lors du départ d'un visiteur du site

Signaler
Messages postés
21
Date d'inscription
vendredi 14 mars 2003
Statut
Membre
Dernière intervention
9 septembre 2005
-
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
-
Bonjour,
comment puis-je savoir lorsqu'un visiteur quitte mon site, afin de pouvoir faire arrêter la session en cours qu'il a ouvert en arrivant sur le site? pour être plus complet, cela me permettra d'arrêter une action de commande en cours qui aurait été commencée par lui, par exemple.

j'ouvre mes sessions avec " session_start(); " lors de l'arrivée du visiteur sur le site.

merci pour une réponse un peu complète, je connais un peu php mais je ne suis pas un pro...

par avance, merci

topito
Curieux de nature, en savoir un peu plus chaque jour, découvrir... et enfin... pouvoir redonner !....

6 réponses

Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Salut!
Tu n'as aucun moyen de savoir exatement quand il quite le site, mais tu peux te dire que s'il a pas réactualisé la page depuis un certain nombre de minutes, il peut être considéré comme parti...

Tu peux avoir une base de données qui contient les id de tous les logés et leur datetime de dernière visualisation de page... Si ce datetime est trop dépassé, tu peux faire ce que tu veux

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
21
Date d'inscription
vendredi 14 mars 2003
Statut
Membre
Dernière intervention
9 septembre 2005

c'est dommage qu'il n'y ait pas de solution lors du départ...
parceque si je prends mon cas, parfois je suis sur plusieurs sites en même temps et donc si je suis sur un site qui a interrompu ma session avant que je n'y revienne je ne vais pas forcément recommencer ce que j'avais entrepris.

merci coockiesch!

Curieux de nature, en savoir un peu plus chaque jour, découvrir... et enfin... pouvoir redonner !....
Messages postés
34
Date d'inscription
lundi 15 novembre 2004
Statut
Membre
Dernière intervention
27 octobre 2005

Sinon tu peux faire du javascript avec la fonction onUnload. Celel ci te dira quand l'utilisateur ferme sa page. Après je sais pas trop quoi en faire mais c'est déjà un bon moyen de repérer quand l'utilisateur par ;)
Messages postés
21
Date d'inscription
vendredi 14 mars 2003
Statut
Membre
Dernière intervention
9 septembre 2005

Bonjour et merci HecToR_coCHON
c'est ce vers quoi je vais essayer de m'orienter si j'arrive à utiliser les variables d'une page à l'autre et d'un fichier à l'autre. J'ai pensé que je pouvais sans doute créer une variable qui s'incrémente de 1 à chaque ouverture d'une nouvelle page de mon site (onload) et qui se décrémente de 1 à chaque fois qu'une page est fermée (onUnload), comme cela lorsque j'arrive au bout (1 ou 0, à définir) je sais que c'est fini et que je peux arrêter ma session...
Mais pour moi cela ne va pas être facile, je crois qu'il faut passer par javascript, j'aurai bien aimé n'en rester qu'à PHP. Je vais essayer de trouver.... maintenant si quelqu'un peut m'aider ce sera avec un grand plaisir!

Curieux de nature, en savoir un peu plus chaque jour, découvrir... et enfin... pouvoir redonner !....
Messages postés
21
Date d'inscription
vendredi 14 mars 2003
Statut
Membre
Dernière intervention
9 septembre 2005

coockiesch bonjour!
merci pour ta réponse.

dans ta réponse:"
Tu peux avoir une base de données qui contient les id de tous les logés et leur datetime de dernière visualisation de page... Si ce datetime est trop dépassé, tu peux faire ce que tu veux"

les id dans ma bdd, je les ai...

je comprends ce que tu veux me dire par datetime: c'est a dire: une heure, minute, seconde au moment où il ont ouvert leur dernière page en cours que je mets dans une variable et que j'actualise dans ma base de données... c'est bien cela?

mais après il faut que je puisse revenir à ma base de données au bout du temps dépassé pour supprimer les informations que je ne veux pas garder dans ma base de données, et je ne peux faire cela que lors d'une autre connexion d'un autre visiteur, ce qui veut dire que cela va prendre du temps (traitement de l'effacement) pour le visiteur? ou y a t'il un autre moyen sans que j'intervienne moi-même régulièrement, donc un moyen que je puisse rendre automatique? d'autant plus que je suis en train de penser que si je n'ai pas encore effacé le n° de session qu'il a en cours, il peut le reprendre même si le temps que j'ai défini est dépassé. donc comment faire pour pouvoir diminuer le temps imparti à une session sans intervenir dans le PHP.ini car si je crois savoir qu'on peut le faire, je ne sais pas faire cela et je ne suis peut être pas encore capable de le faire, sachant que je suis pour l'instant chez Online.net

Curieux de nature, en savoir un peu plus chaque jour, découvrir... et enfin... pouvoir redonner !....
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Salut!
Oui, c'est ca, je parle d'un timestemp, le courant peut etre obtenu par la fonction:
time()

En effet, tu ne pourras le faire que lors du prochain visiteur...

Ensuite tu peux faire que si la session n'a pas été actualisée depuis 5 mins, tu supprime...

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"