start inactivity expire example cache _session php session timeout

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.