Question sur la durée de vie des SESSIONS en PHP ?

Question sur la durée de vie des SESSIONS en PHP ? - Programmation

Marsh Posté le 07-02-2002 à 09:06:30    

Bonjour à tous,  :hello:  
 
Voici mon petit problème :
lorsque je crais des sessions, ces dernières s'enregistrent dans le repertoire "sessiondata" de mon serveur. Par contre, lorsque je quitte le navigateur, je m'attend à ce que ces sessions (fichiers sur mon serveur) soient détruites; hors ce n'est pas le cas !  
J'ai trouvé deux paramètres dans le php.ini qui sont les suivant :
 
session.gc_maxlifetime fixe la durée, en secondes, au−delà de laquelle les données considérées comme inutiles seront supprimées.
 
session.cache_expire spécifie la durée de vie des pages de session cachées, en minutes, mais sans que
cela ait d'effets sur le limiteur "nocache". Par défaut, 180.
 
J'ai fermé mon navigateur hier soir, et quand je suis revenu ce matin, mes sessions n'étaient pas effacées malgrè les deux paramètres ci-dessus.
 
Comment faire pour que mes sessions soient supprimées après la visite de l'internaute ? :??:  
 
Merci d'avance  :jap:  
 
Alex01

Reply

Marsh Posté le 07-02-2002 à 09:06:30   

Reply

Marsh Posté le 07-02-2002 à 09:23:44    

up


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 07-02-2002 à 09:27:04    

c'est quoi UP  :??:

Reply

Marsh Posté le 07-02-2002 à 13:00:54    

up

Reply

Marsh Posté le 07-02-2002 à 13:28:26    

up
 
( tu as compris ?)

Reply

Marsh Posté le 07-02-2002 à 13:41:29    

OK pas 2 topics identiques  :cry:  
 
mais as tu une reponse à ma question initiale  :??:  
 
Bref, ce sujet va disparaitre dans les catacombes du forum d'ici ce soir car j'ai bien l'impression que nul a de reponse !
 
Merci quand même
et pas 2 topics identiques (ok compris) :sol:  
 
Alex01 :bounce:

Reply

Marsh Posté le 07-02-2002 à 13:46:22    

ok alors utilisons notre cervelle quelques instants
 
- comment fonctionnent tes sessions ? cookie et fichier ou juste fichier ?
- quelles sont les valeurs des param que tu donnes dans ton php.ini ?
 
est ce que ta session est bien détruite ? si jamais y a un cookie sur le nav du visiteur on peut très bien la récupérer X temps après (peu probable mais ça dépend de la conf de php)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 07-02-2002 à 13:59:54    

session.save_handler = files
session.save_path =  C:\PHP\sessiondata  
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.serialize_handler = php
session.gc_probability = 1
session.gc_maxlifetime = 1440
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 1
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
 
Voici le contenu du fichier php.ini concernant les sessions.
But du jeux : détruire les fichiers session dans le repertoire c:\php\sessiondata\
 
Théoriquement ça doit être fichier et cookie avec une durée de vie nulle pour les cookies (fermeture du nav.)
 
Peux tu m'aider ?  :cry:  
Alex01

Reply

Marsh Posté le 07-02-2002 à 15:37:26    

ok donc là rien de bizzarre, est ce que ton script détruit bien la session ou pas ? au pire tu file un bout de code de la création/utilisation de la session.
 
sinon session_destroy()


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 07-02-2002 à 15:52:39    

1er fichier : index.php  
$a=5;
session_register("a" );
 
2em fichier : index2.php (debut de programme)
session_start();
echo $a;
 
(a=5 ok, pas de pb) :heink:  
 
au moment ou je suis passé à index2.php, il c'est créé un fichier : sess_014e59f2da24251b755e67b8521647c1 dans le repertoire "sessiondata" du disque dur du serveur.
 
Maintenant je ferme internet explorer et là  :gun:  
le fichier sess_014e59f2da24251b755e67b8521647c1 existe toujours et encore ! :ouch:  (10 heures plus tard il est tjrs là!)
 
Il devrait s'effacer losque le navigateur se ferme et non pas à l'exécution de la fonction session_destroy() (je pense ?)
l'utilisateur n'est pas obligé d'aller à la dernière page du site pour quitter !
 
Alex01 :bounce:

Reply

Marsh Posté le 07-02-2002 à 15:52:39   

Reply

Marsh Posté le 07-02-2002 à 15:58:55    

Deja explique qu'il ne peut pas se détruire à la fermeture du navigateur. Quand la page est hargé il n'y a plus de liaison avec ton serveur jusqu'à ce que l'utilisateur click sur un lien


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 07-02-2002 à 16:00:52    

ok alors j'ai trouvé le truc :
 
session.gc_probability    = 1  
 
la probabilité sur 100 que php lance le "nettoyage" des fichiers de session au démarrage d'une nouvelle session  
donc en mettant à 100 il "nettoyera" à chaque fois les sessions marquées comme inutiles
 
session.gc_maxlifetime    = 1440
 
le temps en secondes après lequel les sessions pourront être "nettoyées".


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 07-02-2002 à 16:02:23    

faut pas oublier qu'une session c'est comme un cookie, tu peux toujours la créer et venir la rechopper 10 jours plus tard !
 
j'ai tester chez moi mais avec un script simple et propre qui détruit à chaque fois la session avant de quitter.


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 07-02-2002 à 16:05:46    

je ne comprend pas ce que tu veux me dire ! lordii

Reply

Marsh Posté le 07-02-2002 à 16:07:41    

t'as essayé avec mon truc ? (style 10 minutes de durée de vie et 100% de nettoyage des fichier ?)
 
 
y a quand même un (petit) souci : comme le vidage des fichiers se fait à la création d'une nouvelle session, t'auras à chaque fois un fichier qui reste au minimum  :D

 

[jfdsdjhfuetppo]--Message édité par Sh@rdar--[/jfdsdjhfuetppo]


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 07-02-2002 à 16:08:41    

Alex01 a écrit a écrit :

je ne comprend pas ce que tu veux me dire ! lordii  




 
Le navigateur du client, une fois la page chargée completement, ne transmet plus d'info au serveur donc le serveur ne sait pas quand celui-ci ( le navigateur) est fermé ou quand il va sur un autre site etc....

 

[jfdsdjhfuetppo]--Message édité par lord ii--[/jfdsdjhfuetppo]


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 07-02-2002 à 16:09:08    

Sh@rdar a écrit a écrit :

faut pas oublier qu'une session c'est comme un cookie, tu peux toujours la créer et venir la rechopper 10 jours plus tard !
 
j'ai tester chez moi mais avec un script simple et propre qui détruit à chaque fois la session avant de quitter.  




 
Ok, mais ça ne marche pas car 180min = 3h et donc 10h plus tard mes sessions sont encore présentes sur le serveur  :cry:  
 
Sur le principe je suis d'accord avec toi mais là ça ne fontionne pas  :heink:

Reply

Marsh Posté le 07-02-2002 à 16:11:03    

oh put...
 
t'as 1 pourcent de chance de nettoyer tres fichiers à la création d'une nouvelle session :heink:  
 
monte le session.gc_probability à 100 dans ton php.ini  
 
il va tout vider à chaque création de session (enfin toutes les sessions marquées comme expirées)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 07-02-2002 à 16:14:41    

Sh@rdar a écrit a écrit :

oh put...
 
t'as 1 pourcent de chance de nettoyer tres fichiers à la création d'une nouvelle session :heink:  
 
monte le session.gc_probability à 100 dans ton php.ini  
 
il va tout vider à chaque création de session (enfin toutes les sessions marquées comme expirées)  




 
Attend; ça viens , je fais le test !!!!!
 :jap:  :jap:  :jap:  :jap:  :jap:  :jap:  
Je te communique le resultat dans 5min

Reply

Marsh Posté le 07-02-2002 à 16:19:35    

OKOKOKOKOKOKOKOKOK
 :hap:  :hap:  :hap:  :hap:  :hap:  :hap:  
 
ça fonctionne !!!!!!!! :lol:  :lol:  :lol:  :pt1cable:  
 
Je te rmercie  :jap:  
 
Petite question: comment peux les récupérer lors d'une nouvelle consultation du site puisque les noms de session que cré PHP sont aléatoires ?

Reply

Marsh Posté le 07-02-2002 à 16:29:27    

y a des fonctions de sauvegarde de session (cf la doc) donc on doit pouvoir les réutiliser après.
 
d'ailleurs tu peux facilement savoir de quelle session il s'agit en faisant un echo session_id()


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 07-02-2002 à 16:36:57    

Ok, merci beaucoup ! :hello:  
 
Redernière question finale : Les paramètres sont passés par URL et Cookie. ce dernier porte t'il le même nom que la session ? (de manière à ce que je puisse reconnaitre l'utilisateur lorsqu'il reviendra et lui attribuer la même session qu'à la première visite :heink: )
 
Alex01 :jap:

Reply

Marsh Posté le 07-02-2002 à 17:36:31    

attention, dans le cookie il n'y a que le nom de la session, pas les données sinon ça sert plus à rien..
 
en fait y deux façons de transmettre l'id de session, par l'URL (la suite de chiffres et lettres qui rallonge tout là ) ou bien de stocker ça dans un cookie, mais les données elles sont stockées sur le disque du serveur et pas ailleurs (sauf si tu sauve ta session dans une bdd mysql, encore une fois voir la doc).


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 07-02-2002 à 20:57:59    

Ok, je comprend et je te remercie pour toutes ces infos
 
A+
 
Alex01

Reply

Marsh Posté le 07-02-2002 à 21:04:08    

Sh@rdar a écrit a écrit :

attention, dans le cookie il n'y a que le nom de la session, pas les données sinon ça sert plus à rien..
 
en fait y deux façons de transmettre l'id de session, par l'URL (la suite de chiffres et lettres qui rallonge tout là ) ou bien de stocker ça dans un cookie, mais les données elles sont stockées sur le disque du serveur et pas ailleurs (sauf si tu sauve ta session dans une bdd mysql, encore une fois voir la doc).  




 
Oui ok, mais comment j'appele le cookie pour pouvoir en tirer le nom de la session du visiteur ?
Si le nom de session est contenu dans le cookie, Alors il me faut retrouver le bon cookie parmis tous ceux de la machine du visiteur ! :heink:  
Il s'appel comment mon cookie ???
 
 :??:  :??:  :??:  :??:  
 
Alex01  :jap:

Reply

Marsh Posté le 07-02-2002 à 23:39:17    

dans le php.ini :
session.name  = PHPSESSID ; name of the session is used as cookie name
 
comme Free est passé au php4, on va devoir faire un topic spécial cours de sessions
 
ne pas confondre, nom de la session (et du cookie), identifiant, et données.


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 08-02-2002 à 09:10:10    

OK, c'est très sympa  :hello: !
Merci de m'avoir aidé  :jap:  :jap:  
 
Mais je ne pense pas être le seul a avoir eu un problème avec les sessions vu la fréquentation du topic !
 
A+
Alex01  :bounce:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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