Modificar el tiempo de vida de una sesión en php
Las sesiones en php tienen múltiples usos, el más habitual, el de mantener activo un usuario logueado. En la mayoría de configuraciones de php el SID se propaga mediante cookies, por lo que para modificar el tiempo de vida de una sesión debe usarse la directiva session.cookie_lifetime.
Por ejemplo, para setear sesiones de dos minutos:
ini_set(”session.cookie_lifetime”,120); //El tiempo viene dado en segundos
Además, será necesario combinarlo con el valor gc_maxlifetime para que el recolector de basura de php no elimine la cookie antes de su expiración.
Siguiendo el ejemplo de los dos minutos, deberíamos inicar lo siguiente:
ini_set(”session.gc_maxlifetime”, 120);
Por último, recordar que estos parámetros deben cambiarse antes de la instrucción session_start(); que es la que nos seteará la cookie en el caso de que ésta no estuviera ya en servidor.
Si falla todo lo anterior, lo mejor es probar con esto(durará una semana, aumentar el volor si se quiere más)
setcookie(‘PHPSESSID’, $_COOKIE[‘PHPSESSID’], time()+86400);
Importante: Es posible que intentéis modificar este tiempo y os de la sensación de que no funciona. Hay que tener en cuenta que es posible que hayáis modificado el código pero vuestro equipo siga teniendo una cookie activa, por lo que hasta que no caduque la anterior no se os guardará la nueva con el tiempo de vida actualizado. Lo mejor para hacer pruebas es disponer de una herramienta como web developer toolbar que os permitirá controlar las cookies, pudiendo eliminar la antigua y comprobar que el código funciona correctamente.