Question :
Comment pouvez-vous déterminer la durée d'une session en fonction de la configuration PHP suivante paramètres ?
session.auto_start Off Off session.bug_compat_42 Off Off session.bug_compat_warn On On session.cache_expire 180 180 session.cache_limiter nocache nocache session.cookie_domain no value no value session.cookie_httponly Off Off session.cookie_lifetime 0 0 session.cookie_path / / session.cookie_secure Off Off session.entropy_file no value no value session.entropy_length 0 0 session.gc_divisor 1000 1000 session.gc_maxlifetime 1440 1440 session.gc_probability 1 1 session.hash_bits_per_character 5 5 session.hash_function 0 0 session.name PHPSESSID PHPSESSID session.referer_check no value no value session.save_handler files files session.save_path /var/lib/php/session /var/lib/php/session session.serialize_handler php php session.use_cookies On On session.use_only_cookies Off Off session.use_trans_sid 0 0
Réponse :
Bien que le paramètre session.gc_maxlifetime spécifie la durée de vie maximale des données de session depuis sa dernière modification, la gestion des sessions par PHP présente certaines complexités.
Plus précisément, le garbage collector qui supprime les données de session expirées n'est pas appelé par chaque appel session_start. Au lieu de cela, il est invoqué avec une probabilité déterminée par session.gc_probability (par défaut : 1) et session.gc_divisor (par défaut : 100). Cela signifie que même si les données de session ont théoriquement expiré, elles peuvent toujours être utilisées pendant une période plus longue.
Pour atténuer ce problème et garantir des délais d'expiration de session fiables, il est recommandé de mettre en œuvre un mécanisme d'expiration de session personnalisé.
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!