|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre éprouvé
![]() Inscription : novembre 2005 Messages : 530 ![]() |
Bonjour !
Dans mon application, je stocke des fichiers dans des répertoires temporaires nommé avec le numéro de session. Je veux faire un script dans mon cron pour effacer les fichiers qui ne sont plus utilisés. Je pensais donc faire un truc comme ça: Lister tous les répertoires de mon répertoire http://domaine.com/tmp/, par exemple: Code :
Pour ça je compte lister les fichiers de session contenu dans le dossier session.save_path (dans mon cas /tmp) et effacer les répertoires dont je ne trouve pas de session ouverte. Dans mon cas, j'ai des fichiers qui commence toujours par "sess_" suivi du numéro de session. Cette application devra pouvoir s'installer sur différentes plateforme, mes questions sont donc les suivante: 1. Trouve-t-on toujours le répertoire de session dans session_save_path ? 2. Les fichiers de sessions commence-til toujours par "sess_" ? Merci ! |
||
|
|
00
|
|
|
#2 | |
|
Membre chevronné
![]() |
[quote]1. Trouve-t-on toujours le répertoire de session dans session_save_path ?
Non. Dans le cas d'un hebergement mutualisé par exemple, chaque "site" stockera ses sessions dans un dossier différent. Citation:
Solution : pourquoi ne pas supprimer tes dossiers lorsque PHP supprime les fichiers de session ? Il me semble plus logique de faire cette opération de manière synchronisée, non ? => http://fr.php.net/manual/fr/function.session-set-save-handler.php |
|
|
|
00
|
|
|
#3 | |
|
Membre éprouvé
![]() Inscription : novembre 2005 Messages : 530 ![]() |
Citation:
Si je met une fonction sur le destroy, celle ci sera appellé, même si le navigateur de l'internaute est fermé sans passer par un session_destroy() ??? Si c'est bien le cas, c'est l'idéal. Si oui, on peux ne passer qu'une fonction de destroy comme ça ? Code :
session_set_save_handler ( NULL, NULL, NULL, NULL, fonction_nettoyage, NULL) |
|
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() Inscription : novembre 2005 Messages : 530 ![]() |
Sinon, ne puis-je pas tout simplement forcer session.save_handler à "files" avec ini_set et fonctionner comme je voulais le faire au début ?
C'est une mois bonne solution que la tienne mais l'info m'interesse quand même au cas où la solution de session_set_save_handler ne fonctionne pas... |
|
|
00
|
|
|
#5 | |||
|
Membre chevronné
![]() |
Citation:
Ce qui nous interesse, c'est surtout le "garbage collector" (gc), qui se charge de "nettoyer" le dossier de session. Il est généralement appelé de manière alléatoire (1 chance sur 100, par défaut). Citation:
Citation:
Et tout dépend de l'hebergeur également ; sur la plupart de mes machines les sessions sont stockées en mémoire... tu ne trouverais donc aucune référence sur le disque... |
|||
|
|
00
|
|
|
#6 |
|
Membre éprouvé
![]() Inscription : novembre 2005 Messages : 530 ![]() |
Ok merci pour toute ses informations.
Je vais donc refaire une gestion des sessions en mysql. Le nettoyage sera quand même beaucoup plus simple. Merci encore ! |
|
|
00
|
|
|
#7 | |
|
Membre chevronné
![]() |
De rien
Citation:
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com