WampServer

Apache, PHP, MySQL on Windows 

 
  • Accueil forum
  • Retour à WampServer
  • presentation
  • Download
  • Addons
  • Formations
  • Alter Way

 
Voir le sujet: Précédent•Suivant
Aller à : Liste des Forums•Liste des messages•Nouvelle discussion•Recherche•Connexion•Imprimer la vue
Expiration des sessions ?
Envoyé par: Tonio (---.adsl.proxad.net)
Date: 10 November 2004 à 12:34

Bonjour,

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"winking smiley;

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?

Ou dois-je redéfinir session_cache_expire (180)?

Merci pour vôtre aide..

++

Tonio

Options: Répondre•Citer ce Message
Re: Expiration des sessions ?
Envoyé par: Romain Bourdon (---.w83-114.abo.wanadoo.fr)
Date: 10 November 2004 à 13:45

Salut,

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 :

session.gc_probability = 1
session.gc_divisor = 100

En gros, PHP s'en occupe, tu n'as pas à netoyer les fichiers de ssion toi même...

plus di'nfos :

<[www.php.net];

++

Romain

Options: Répondre•Citer ce Message
Re: Expiration des sessions ?
Envoyé par: Tonio (---.adsl.proxad.net)
Date: 10 November 2004 à 14:41

>>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 ?

Merci pour tout..

++

Tonio.

Options: Répondre•Citer ce Message
Re: Expiration des sessions ?
Envoyé par: Romain Bourdon (---.w83-114.abo.wanadoo.fr)
Date: 10 November 2004 à 15:01

bon, on va rentrer dans le détail,

à 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.

...

Romain

Options: Répondre•Citer ce Message
Re: Expiration des sessions ?
Envoyé par: Tonio (---.adsl.proxad.net)
Date: 10 November 2004 à 15:15

>> À 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.

Voici ma configuration :

session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440 (1440/60 = 24 minutes)

Donc dans mon cas, le garbage collector se déclenche si le nombre tiré au hazard
est égal à 0.

Et donc dans ce cas (rare !), les fichiers n'ayant pas été modifiés depuis 24 minutes
sont tous détruits.

Ai-je bon ?

Options: Répondre•Citer ce Message


Aller à : Liste des Forums•Liste des messages•Recherche•Connexion
Désolé, seuls les utilisateurs connectés peuvent envoyer des messages dans ce forum.
Cliquer ici pour se connecter

design by jidePowered by Alter Way get firefoxget PHP