Déterminer la durée d'une session à partir des données fournies peut être un peu difficile. Entrons dans les détails pour trouver la réponse.
En PHP, les sessions sont gérées par un garbage collector (GC). Le paramètre session.gc_maxlifetime spécifie la durée maximale écoulée depuis la dernière modification des données de session avant qu'elles ne soient marquées pour suppression. Cependant, il y a un problème : le GC n'est pas appelé à chaque fois que session_start est invoqué.
Les paramètres session.gc_probability et session.gc_divisor déterminent la probabilité que le GC soit déclenché lors d'un appel session_start. Par défaut, ces valeurs sont respectivement 1 et 100, ce qui signifie que le GC ne s'exécute que dans environ 1 % de ces appels.
Le fait que le GC ne soit pas toujours invoqué signifie que, même si la durée de vie d'une session a techniquement expiré (c'est-à-dire que les données de session ont été modifiées il y a session.gc_maxlifetime secondes), elle peut toujours être utilisée pendant une période plus longue.
En raison de ce comportement, il est généralement conseillé d'implémenter votre propre mécanisme de délai d'expiration de session plutôt que de vous fier uniquement au GC de PHP. Cela peut aider à garantir que les sessions se terminent dans un délai prédéterminé.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!