2011-05-20 31 views
5

¿Puede alguien explicar exactamente cómo hacer para que la sesión dure más tiempo en PHP, pero sin usar php.ini?Tiempo de espera de la sesión de PHP

He intentado lo siguiente en .htaccess:

<IfModule mod_php5.c> 
    #Session timeout 
    php_value session.cookie_lifetime 3600 
    php_value session.gc_maxlifetime 3600 
</IfModule> 

También he intentado:

ini_set('session.gc_maxlifetime', '3600'); 

Pero ninguno de ellos parecen estar funcionando.

¿Alguna idea?

+0

¿estás seguro con '3600'? me refiero a que estás usando quote, has intentado si ini_set ('session.gc_maxlifetime', 3600); ??? (sin una sola cita cerca de 3600) – bungdito

+0

¿Más que qué? Con su configuración actual, su sesión debería durar una hora. – Gumbo

+0

Sí, con el código que escribí anteriormente, que tampoco funciona. Simplemente quiero aumentar a cualquier longitud que se requiera ... – user398341

Respuesta

8

Ok - He encontrado el camino y funciona - en el .htaccess simplemente añade lo siguiente al aumentar el tiempo de espera de 5 horas:

php_value session.cookie_lifetime 18000 
php_value session.gc_maxlifetime 18000 
7

En muchos hosts compartidos, todas las sesiones se almacenan en la misma ubicación. Debido a la forma en que funciona la recolección de basura, esto significa que las sesiones de todos se eliminan después del intervalo de GC más corto.

Una solución es hacer:

php_value session.save_path "/my/personal/path" 
php_value session.gc_maxlifetime "3600" 

o también puede configurar un custom session save handler. Primero intente cambiar su ruta de guardado, porque los manejadores personalizados son un poco más complicados.

Cuestiones relacionadas