J'aimerais savoir si les sessions non détruite avec session_destroy() sont quand même détruite après le temps indiqué dans le php.ini ( session.cache_expire = 180) ?
Pour info, je sauvegarde mes fichiers de session dans un répertoire que j'ai défini avec : session_save_path(dirname(__FILE__) . "/sessionTmp"
Or les fichiers (non détruits avec session_destroy()) ne sont pas détruit après 3 heures.
Faut-il que je les détruise moi-même à la main avec par exemple une fonction qui détruirait les fichiers non modifiés depuis 3 heures?
session_cache_expire permet de définir la durée de validité des fichiers de cache, leur suppression n'y est pas directement liée. La suppression des fichiers de cache est effectuée par le garbage collector qui va vérifier les fichiers à supprimer de façon aléatoire (en se basant sur des proba) en fcontion de :
>>En gros, PHP s'en occupe, tu n'as pas à netoyer les fichiers de ssion toi même...
Alors pourquoi aujourd'hui 10/11/04 14H36, j'ai toujours dans mon répertoire "sessionTmp" les fichiers de session suivants :
Nom Modifié le sess_8942d9b1e5554b6bac00d69607bc3278 09/11/04 à 17H09 sess_8208b0d3e0f8856300e6d027a4c920fd 09/11/04 à 17H31 sess_fc9ddc4ea7d0b9b1e3a656bcafd49d6b 10/11/04 à 9H15 sess_97bf0235bbf98e5c4eb70e6dab3574f8 10/11/04 à 12H20
D'après toi, ces fichiers vont donc bien être supprimés un jour ?
Peut-être faut-il qu'il y est une quantité minimum de fichiers dans "sessionTmp" pour que le garbage collector supprime aléatoirement ces fichiers ?
à chaque fois que tu fais appel au sessions, PHP génére une valeur aléatoire. en fct de cette valeur aléatoire et de tes réglages de Garbage Collector, il va nettoyer ou non le répertoire des fichiers de session. Donc, en toute logique, plus tu auras de connexions plus tes fichiers de session périmés seront supprimés rapidement...mais de toute façon il finiront pas être supprimés un jour.
À chaque lancement de session, un nombre est tiré au hasard entre 0 et 99. Si ce numéro est inférieur à la valeur de la directive de configuration session.gc_probability, alors PHP lit le répertoire de stockage et efface tous les fichiers de session qui sont expirés. Un fichier est considéré comme ayant expiré si son âge en secondes est plus important que la valeur de session.gc_maxlifetime. Définir des valeurs trop importantes pour ces deux directives aura un impact négatif sur les performances du système, le ramasse-miettes ayant à analyser trop de fichiers ou trop souvent.
>> À chaque lancement de session, un nombre est tiré au hasard entre 0 et 99. Si ce >> numéro est inférieur à la valeur de la directive de configuration >>session.gc_probability, alors PHP lit le répertoire de stockage et efface tous les >>fichiers de session qui sont expirés. Un fichier est considéré comme ayant expiré si >> son âge en secondes est plus important que la valeur de session.gc_maxlifetime.