SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: Ensy en Lunes 29 de Septiembre de 2008, 14:55

Título: Sesiones infinitas
Publicado por: Ensy en Lunes 29 de Septiembre de 2008, 14:55
Hola!!

Me gustaría saber si hay alguna manera de que la sesión perdure mientras que no se cierre el explorer aunque la aplicación esté inactiva.

Yo creo que tiene que haber alguna variable en el php.ini o en el otro fichero de configuración pero no me atrevo a tocar ahí sin saber fijo lo que tengo que cambiar.

Muchas gracias!!
Título: Re: Sesiones infinitas
Publicado por: shadow_rev en Lunes 29 de Septiembre de 2008, 21:06
Las variables del archivo php.ini las puedes cambiar en tiempo de ejecución con el comando ini_set(String $variable, String $valor), por si no quieres hacer un cambio permanente. Pero el valor que ponen allí (no recuerdo cuál es) es un valor por defecto; si no me equivoco, para controlar el tiempo de vida de una sesión, puedes utilizar session_cache_expire(). Encuentras más info en http://www.php.net/manual/es/ref.session.php (http://www.php.net/manual/es/ref.session.php" onclick="window.open(this.href);return false;)

:suerte:
Título: Re: Sesiones infinitas
Publicado por: Ensy en Martes 30 de Septiembre de 2008, 10:29
Hola!!

La variable en el php.ini es 'session.gc_maxlifetime' y su valor por defecto es '1140'.
Voy a utilizar ini_set() para modificar ese valor pero mi duda es: tengo que ponerlo al comienzo de todas las páginas o con cambiarlo en la de inicio ya me lo mantiene? Es decir, cuando vuelve a coger el valor por defecto el php.ini, cuándo cierro el explorer?

Muchas gracias!!
Título: Re: Sesiones infinitas
Publicado por: shadow_rev en Martes 30 de Septiembre de 2008, 15:38
Creo que es suficiente con cambiarlo en la de inicio, ya que cuando inicias una sesión, esta se almacena en una cookie que permanece hasta que cierras la sesión (cuando en la aplicación le pinchas en 'cerrar sesión', o cuando cierras el navegador si lo has configurado para que borre los datos de sesión). El valor por defecto en el php.ini lo retoma en otras aplicaciones, o cuando accedes a otro script distinto al inicial sin iniciar una sesión.

Te recomiendo que busques más opciones, creo que esa no es la única forma de controlar el tiempo de una sesión, y sinceramente, en el trabajo no me he visto en la necesidad de mantener sesiones abiertas, de modo que no tengo muchos datos sobre el control de estas :nosweat: .

:suerte:
Título: Re: Sesiones infinitas
Publicado por: Ensy en Miércoles 1 de Octubre de 2008, 12:40
Ok, muchas gracias. Creo que lo voy a dejar así y más adelante buscaré otras formas de controlarlas. Esta me sirve para lo que quiero hacer ya que solamente quiero que se mantenga en una de las aplicaciones porque la dejan abierta y no quieren estar metiendo el usuario continuamente... En esta ocasión se puede adaptar al usuario ;)

Saludos!!