inactivity - php session timeout example
¿Cuánto tiempo durará mi sesión? (4)
Éste es el indicado. La sesión durará 1440 segundos (24 minutos).
session.gc_maxlifetime 1440 1440
¿Puede alguien decirme cuánto durará mi sesión de los datos a continuación? - No estoy seguro de cuál me dice
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
En general, puede decir que session.gc_maxlifetime especifica el tiempo de vida máximo desde el último cambio de sus datos de sesión (¡ no la última vez que se llamó a session_start
!). Pero el manejo de la sesión de PHP es un poco más complicado.
Debido a que los datos de sesión son eliminados por un recolector de basura que solo es llamado por session_start
con una probabilidad de session.gc_probability dividida por session.gc_divisor . Los valores predeterminados son 1 y 100, por lo que el recolector de elementos no utilizados solo se inicia en solo el 1% de todas las llamadas session_start
. Eso significa que incluso si la sesión ya está agotada en teoría (los datos de la sesión se han cambiado más que session.gc_maxlifetime segundos atrás), los datos de la sesión se pueden usar más tiempo que eso.
Debido a ese hecho, le recomiendo que implemente su propio mecanismo de tiempo de espera de la sesión. Ver mi respuesta a ¿Cómo expiraré una sesión PHP después de 30 minutos? para más detalles.
Está buscando gc_maxlifetime, consulte session.gc_maxlifetime para obtener una descripción.
Su sesión durará 1440 segundos, que es de 24 minutos (predeterminado).
Si session.cookie_lifetime
es 0, la cookie de sesión permanece hasta que se cierra el navegador.
EDITAR : Otros han mencionado la configuración de session.gc_maxlifetime
. Cuando se produce la recolección de elementos no utilizados de la sesión, el recolector de elementos no utilizados eliminará los datos de sesión a los que no se haya accedido durante más tiempo que session.gc_maxlifetime
de tiempo. Para establecer el tiempo de vida de la cookie de sesión, llame a session_set_cookie_params()
o defina la configuración PHP de session.cookie_lifetime
. Si esta configuración es mayor que session.gc_maxlifetime
, debe aumentar session.gc_maxlifetime
a un valor mayor o igual a la duración de la cookie para asegurarse de que sus sesiones no caduquen.