|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Inscription : mars 2009 Messages : 170 ![]() |
Bonjour,
je cherche un moyen pour vider une session lors de la fermeture de la page. Voici mon problème Dans le cadre d'un panier, je créé une session (panier) dans laquelle j'ajoute ou supprime des produits. Si je ne vide pas mon panier avant de quitter ma page, lorsque je l'ouvre à nouveau, ma session est toujours existante et mon panier est toujours plein. J'ai déjà essayer plusieurs choses tel que: session_cache_expire(); Quelqu'un aurait-il une idée? Merci d'avance |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : mars 2005 Messages : 2 815 ![]() |
Pour qu'on soit sûr de parler de la même chose, qu'appelles-tu "quitter une page" ?
__________________
Un problème exposé clairement est déjà à moitié résolu Keep It Smart and Simple |
|
|
00
|
|
|
#3 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 694 ![]() |
Salut
Effectivement, il faudrait fournir plus de précision. Citation:
La suppression du panier ne devrait il pas être une action volontaire de l'utilisateur ? Chose qui a l'air d'être fonctionnel, non ? Question comme ça à tout hasard. Si tu ferme explicitement le navigateur (et non pas un onglet), voir redémarrer ton PC (après avoir mis au moins 1 produit dans le panier), est ce que tu remarque après ça que le produit est toujours dans le panier ?
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#4 |
![]() ![]() Thomas RambaudDéveloppeur Web Inscription : décembre 2007 Messages : 2 134 ![]() |
Il n'y a pas, à ma connaissance, de moyen fiable de détecter la fermeture d'un navigateur.
En terme d'expérience utilisateur, il est normal que le panier (shopping cart) conserve son état lors de la réouverture du navigateur. Néanmoins, tu peux fixer un temps de durée de vie de session. |
|
10
|
|
|
#5 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 694 ![]() |
Citation:
Il me semble que le cas le plus courant serait que lorsqu'on ferme le navigateur, et non l'onglet, les cookies seraient détruis, du coup, même si le fichier de session a une date valide, une nouvelle session sera créé. Au bout, toutes les données seront perdues, entre autre le panier. Il me semble que c'est ainsi sur IE tout comme FF par défaut, non ?
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#6 | |
|
Membre régulier
![]() Inscription : octobre 2010 Messages : 101 ![]() |
Je confirme les sessions sont détruites à la fermeture du navigateur. Et elle ne le sont pas à la fermeture d'un onglet, c'est cela son problème il me semble.
Citation:
|
|
|
|
00
|
|
|
#7 |
|
Membre à l'essai
![]() Inscription : mars 2009 Messages : 170 ![]() |
Bonjour à tous et merci pour votre aide,
je crois que je vais limiter la durée de vie de ma session comme le conseil ThomasR. Je crois que ce sera plus simple. Ou alors, je vais faire un système de login/logout… à voir. J'ai par contre appliqué sur un autre projet vos conseils donnés dans mon poste d'hier "Impossible d'afficher le contenu de mon panier et supprimer des éléme". Je rencontre à nouveau un problème de suppression d'élément mais je ne vois pas ce qui coince. J'ai ouvert un nouveau poste "Sessions : efface tout au lieu de 1 élément". Si l'un ou l'autre sait m'éclairer sur mon erreur ce serait sympa? Merci pour votre aide ! |
|
|
00
|
|
|
#8 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 694 ![]() |
Citation:
Mais est ce réellement le fond du problème ? Comme ça, j'en doute. Fais un phpinfo() et recherche ceci :session.gc_maxlifetime, ça te donnera le temps d'expiration de la session, qui par défaut vaut 1440 (soit 24 minutes). Ce qui te permettra de voir si c'est normal ou pas de ton coté. De même que vouloir supprimer un élément de la session et supprimer l'intégralité de la session (logout) c'est tout de même 2 choses différentes. En tout cas, tant que tu ne donneras pas quelques informations supplémentaires, ou effectuer les divers essai qu'on te suggère, à part tomber sur le bug par hasard, on pourra difficilement te venir en aide.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com