Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1728 connectés 

  FORUM HardWare.fr
  Programmation

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°97653
Alex01
Posté le 07-02-2002 à 09:06:30  profilanswer
 

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

mood
Publicité
Posté le 07-02-2002 à 09:06:30  profilanswer
 

n°97658
Lord II
PIB2000
Posté le 07-02-2002 à 09:23:44  profilanswer
 

up


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°97659
Alex01
Posté le 07-02-2002 à 09:27:04  profilanswer
 

c'est quoi UP  :??:

n°97730
Alex01
Posté le 07-02-2002 à 13:00:54  profilanswer
 

up

n°97747
Lord II
PIB2000
Posté le 07-02-2002 à 13:28:26  profilanswer
 

up
 
( tu as compris ?)

n°97755
Alex01
Posté le 07-02-2002 à 13:41:29  profilanswer
 

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:

n°97760
Sh@rdar
Ex-PhPéteur
Posté le 07-02-2002 à 13:46:22  profilanswer
 

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
n°97770
Alex01
Posté le 07-02-2002 à 13:59:54  profilanswer
 

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

n°97818
Sh@rdar
Ex-PhPéteur
Posté le 07-02-2002 à 15:37:26  profilanswer
 

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
n°97831
Alex01
Posté le 07-02-2002 à 15:52:39  profilanswer
 

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:

mood
Publicité
Posté le 07-02-2002 à 15:52:39  profilanswer
 

n°97837
Lord II
PIB2000
Posté le 07-02-2002 à 15:58:55  profilanswer
 

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 .
n°97840
Sh@rdar
Ex-PhPéteur
Posté le 07-02-2002 à 16:00:52  profilanswer
 

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
n°97841
Sh@rdar
Ex-PhPéteur
Posté le 07-02-2002 à 16:02:23  profilanswer
 

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
n°97842
Alex01
Posté le 07-02-2002 à 16:05:46  profilanswer
 

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

n°97844
Sh@rdar
Ex-PhPéteur
Posté le 07-02-2002 à 16:07:41  profilanswer
 

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
n°97845
Lord II
PIB2000
Posté le 07-02-2002 à 16:08:41  profilanswer
 

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 .
n°97846
Alex01
Posté le 07-02-2002 à 16:09:08  profilanswer
 

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:

n°97848
Sh@rdar
Ex-PhPéteur
Posté le 07-02-2002 à 16:11:03  profilanswer
 

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
n°97851
Alex01
Posté le 07-02-2002 à 16:14:41  profilanswer
 

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

n°97857
Alex01
Posté le 07-02-2002 à 16:19:35  profilanswer
 

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 ?

n°97865
Sh@rdar
Ex-PhPéteur
Posté le 07-02-2002 à 16:29:27  profilanswer
 

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
n°97872
Alex01
Posté le 07-02-2002 à 16:36:57  profilanswer
 

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:

n°97913
Sh@rdar
Ex-PhPéteur
Posté le 07-02-2002 à 17:36:31  profilanswer
 

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
n°97981
Alex01
Posté le 07-02-2002 à 20:57:59  profilanswer
 

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

n°97982
Alex01
Posté le 07-02-2002 à 21:04:08  profilanswer
 

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:

n°98030
Sh@rdar
Ex-PhPéteur
Posté le 07-02-2002 à 23:39:17  profilanswer
 

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
n°98073
Alex01
Posté le 08-02-2002 à 09:10:10  profilanswer
 

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:

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

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

 

Sujets relatifs
PHP - Uploader un fichier en créeant un lien...[JS] Put1 je galere ! question de newbie...
[HTML-PHP] Formulaires[question con]code clavier pour \r
Petite question au sujet des manipulations de base de donnés en DelphiQuestion sur les SESSIONS en PHP
[Java] question philosophique (?)Php : comment vérifier si une fonction est déjà déclarée?
Plus de sujets relatifs à : Question sur la durée de vie des SESSIONS en PHP ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR