Flachy Joe
Messages postés2103Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention21 novembre 2023
-
26 janv. 2007 à 10:12
Flachy Joe
Messages postés2103Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention21 novembre 2023
-
29 janv. 2007 à 08:40
Salut,
j'ai vu dans la doc de php que les fichiers de sessions (qui stockent les variables pour chaques sessions) sont sensés se détruire automatiquement (à l'ouverture de n'importe quelle session) si la session est fermée et qu'un certain temps est passé. Or chez moi (Apache 2 sous Mandriva 2007, php 5.1.6) ces fichiers restent.
Ça m'embete bien puisque j'utilise une base de donnée (et non les fichiers) pour enregistrer les infos des utilisateurs et qu'avec mon script un nouveau fichier de session est créé à chaque connexion.
Est ce que je doit me débrouiller pour suprimer les fichiers ou est ce qu'il vaut mieux que je les recyclent (en réutilisant les id de sessions déjà créés) ?
Dans mon script la session est crée avant la vérification de l'identité de l'utilisateur. Donc une erreur de login crée aussi une session, qui est détruite juste apres avec session_destroy, mais le fichier reste.
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 26 janv. 2007 à 13:36
"j'ai vu dans la doc de php que les fichiers de sessions (qui stockent
les variables pour chaques sessions) sont sensés se détruire
automatiquement", oui, c'est le GC qui s'occupe de ca tout seul.
Il se fait appeler 1 fois sur 100.
"Est ce que je doit me débrouiller pour suprimer les fichiers ou est ce
qu'il vaut mieux que je les recyclent (en réutilisant les id de
sessions déjà créés) ?"Nan, il faut juste configurer ton GC.
"Ça m'embete bien puisque j'utilise une base de donnée (et non les fichiers)"
Il faut que tu utilises session_set_save_handler() pour utiliser autre chose qu'un système de fichier pour les sessions :) La fonction de gc() y est également présente :)
Flachy Joe
Messages postés2103Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention21 novembre 20231 26 janv. 2007 à 22:40
Salut,
je n'utilise pas le session_set_save_handler, parcequ'en fait ça m'arrange bien d'utiliser le double systeme : je ne vais chercher les infos dans la base de donnée que lors de la création de la session, ensuite elle reste valide en utilisant le fichier.
Je ne connaisait pas le Garbage Collector...
Donc récapitulons :
A chaque ouverture de session, le GC à session.gc_probability / session.gc_divisor chances de démarrer (par défaut 1/100) et de supprimer les fichiers ayant plus de session.gc_maxlifetime secondes (par défaut 1440). Donc si je ne modifie pas ces valeurs par défaut il se peut que j'attende longtemps avant que quoi-que-ce-soit soit supprimé...
(cf. http://fr2.php.net/manual/fr/ref.session.php#ini.session.gc-probability )
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 27 janv. 2007 à 16:30
Oui, car si tu fait du GC un peu trop souvent, tu te retrouves avec des pertes de temps dû à une vérification et à une suppression d'une éventuelle session.
1/100 est a priori assez recommandé... j'avais essayé un système basé sur SQL en faisant une suppression de session à chaque fois qu'un visiteur rentre sur mon site ou change de page. Imagine 10 visiteurs qui consultent 5 pages chacun ==> 50 requètes de DELETE !!!
Avec le GC, 1 requète avec un peu de chance :)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 29 janv. 2007 à 08:03
Hello,
juste une petite incursion pour un conseil : quand on a un serceur dédié, sur lequel potentiellement on hébergera plusieurs sites, et qu'on a besoin de modifier pour un site la façon dont fonctionnent les session, il vaut mieux isoler les sessions de ce site dans un répertoire qui lui sera propre. La raison étant que, par exemple, si on modifie le comportement des sessions pour qu'elles ne soient effacées que toutes 8h, mais qu'on a d'autres sites au comportement par défaut de ce côté-ci, le site modifié verra ses fichiers de session nettoyer au même rythme que les autres car le GC des autres sites (configuré par défaut) ne fera pas la distinction entre les fichiers de session de tel ou tel site.
Vous n’avez pas trouvé la réponse que vous recherchez ?