Foros del Web » Programando para Internet » PHP »

la funcion "session.gc_maxlifetime" no alarga la variables de sesion... pq?

Estas en el tema de la funcion "session.gc_maxlifetime" no alarga la variables de sesion... pq? en el foro de PHP en Foros del Web. Hola, hace algunos días escribí preguntando sobre pq me expiraba las variables de session... encontré la solución: Código PHP:         // alargo la vida de expiración de las variables a 2 horas      ini_set ( "session.gc_maxlifetime" ...
  #1 (permalink)  
Antiguo 16/05/2005, 07:53
Avatar de skaperna  
Fecha de Ingreso: marzo-2005
Ubicación: Barcelona
Mensajes: 84
Antigüedad: 19 años, 1 mes
Puntos: 1
Información la funcion "session.gc_maxlifetime" no alarga la variables de sesion... pq?

Hola,

hace algunos días escribí preguntando sobre pq me expiraba las variables de session... encontré la solución:

Código PHP:
       // alargo la vida de expiración de las variables a 2 horas
    
ini_set("session.gc_maxlifetime","7200");
    
session_start();
    
$_SESSION['gestor']=$valor
pero ha surgido un pequeño problemilla ... y es que la sessión se pierde antes de las 2 horas preestablecidas... alguna idea del por qué??

Gracias
Skaperna







pero ahora ha surgido otro problemilla...
__________________
La sangre son las lágrimas del alma...
  #2 (permalink)  
Antiguo 16/05/2005, 08:25
Avatar de skaperna  
Fecha de Ingreso: marzo-2005
Ubicación: Barcelona
Mensajes: 84
Antigüedad: 19 años, 1 mes
Puntos: 1
No hay nadie que pueda tener alguna explicación sobre esto?????? plisssssss
__________________
La sangre son las lágrimas del alma...
  #3 (permalink)  
Antiguo 16/05/2005, 09:24
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 21 años, 1 mes
Puntos: 1
No se si sera por esto pero recuerda que las sesiones de borran cuando cierras el navegador..

ademas no estoy seguro pero puede ser que el navegador pierda el cache por que por defecto es 180, el manual dice:
session.cache_expire especifica el tiempo-de-vida de las páginas de la sesión que se encuentran en el caché en minutos. No tiene efecto para el limitador nocache. Por defecto vale 180.


Un Saludo
  #4 (permalink)  
Antiguo 16/05/2005, 11:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Necesitamos ver que configuración de PHP usas sobre sesoines (php.ini o por phpinfo() lo puedes ver). NO sabemos como propagas el SID .. esto es muy importante por si lo haces por cookies .. la cookie tiene también tiempo de expiración.

Te recomendaría leer sobre la configuración de sesiones que afecta a todo esto en:
www.php.net/session


Un saludo,
  #5 (permalink)  
Antiguo 17/05/2005, 03:26
Avatar de skaperna  
Fecha de Ingreso: marzo-2005
Ubicación: Barcelona
Mensajes: 84
Antigüedad: 19 años, 1 mes
Puntos: 1
Configuración y solución al problema... creo...

Hola,

esta es la información de las sesiones...

Código PHP:
                                            Local Value     Master value
session
.auto_start                        Off                    Off 
session
.bug_compat_42                 On                     On 
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_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                       100                     100 
session
.gc_maxlifetime                1440                    1440 
session
.gc_probability                   1                          1 
session
.name                         PHPSESSID            PHPSESSID 
session
.referer_check                no value               no value 
session
.save_handler                   files                     files 
session
.save_path                      /tmp                    /tmp 
session
.serialize_handler               php                      php 
session
.use_cookies                     On                       On 
session
.use_only_cookies              Off                       Off 
session
.use_trans_sid                   On                       On 
he visto que el SID se transmite por cookies, que el tiempo límite de éstas está en 180 minutos, y que el tiempo predefinido para borrar las variables de sesión es de 1440 seggundos (=24 minutos).

Creo que encontré porqué me pasaba que después de ponerle
Código PHP:
ini_set("session.gc_maxlifetime","7200"); 
se me perdían las variables antes de 2 horas... la cosa está en que cada vez que haces una petición al servidor en las diferentes páginas, session.gc_maxlifetime vuelve a ponerse al valor por defecto, es decir, a 1440 (cosa que no sabía), con lo cual debería poner
ini_set("session.gc_maxlifetime","7200") en todos aquellas páginas que vayan a tener acceso al servidor...

Bueno, espero que sea eso... ya que sino, no tengo ni idea de pq se pierden...

Gracias igualmente
Skaperna
__________________
La sangre son las lágrimas del alma...
  #6 (permalink)  
Antiguo 15/12/2009, 03:22
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 22 años, 5 meses
Puntos: 5
Respuesta: la funcion "session.gc_maxlifetime" no alarga la variables de sesion... pq

el problema que tienes es que no configuras correctamente la directiva session.cookie_lifetime, esta directiva por defecto esta inicializada a 1 hora, y es el tiempo de vida de la cookie en el navegador, para más información: http://blogs.sun.com/oswald/entry/ph...maxlifetime_vs
__________________
Usuario registrado de Linux #288725
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:16.