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

 


Dernière réponse
Sujet : Question sur la durée de vie des SESSIONS en PHP ?
Alex01 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:

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Alex01 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:
Sh@rdar 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.
Alex01

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:

Alex01 Ok, je comprend et je te remercie pour toutes ces infos
 
A+
 
Alex01
Sh@rdar 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).
Alex01 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:
Sh@rdar 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()
Alex01 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 ?
Alex01

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

Sh@rdar 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)
Alex01

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:

Lord II

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]

Sh@rdar 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]

Alex01 je ne comprend pas ce que tu veux me dire ! lordii
Sh@rdar 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.
Sh@rdar 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".
Lord II 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
Alex01 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:
Sh@rdar 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()
Alex01 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
Sh@rdar 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)
Alex01 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:
Lord II up
 
( tu as compris ?)
Alex01 up
Alex01 c'est quoi UP  :??:
Lord II up
Alex01 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

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)