Foros del Web » Programando para Internet » PHP »

Configurar Timeout para sesiones

Estas en el tema de Configurar Timeout para sesiones en el foro de PHP en Foros del Web. Buenas noches, ¿Cómo hago para que al transcurrir X cantidad de tiempo automáticamente se cierre una sesión PHP? Saludos....
  #1 (permalink)  
Antiguo 16/11/2007, 23:38
Avatar de Daam  
Fecha de Ingreso: octubre-2007
Ubicación: Planeta Tierra
Mensajes: 152
Antigüedad: 16 años, 6 meses
Puntos: 0
Pregunta Configurar Timeout para sesiones

Buenas noches,

¿Cómo hago para que al transcurrir X cantidad de tiempo automáticamente se cierre una sesión PHP?

Saludos.
  #2 (permalink)  
Antiguo 17/11/2007, 10:44
Avatar de Daam  
Fecha de Ingreso: octubre-2007
Ubicación: Planeta Tierra
Mensajes: 152
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Configurar Timeout para sesiones

Cualquier ayuda bienvenida sea.
  #3 (permalink)  
Antiguo 17/11/2007, 12:54
 
Fecha de Ingreso: julio-2006
Mensajes: 96
Antigüedad: 17 años, 9 meses
Puntos: 2
Re: Configurar Timeout para sesiones

Cita:
Iniciado por Daam Ver Mensaje
Buenas noches,

¿Cómo hago para que al transcurrir X cantidad de tiempo automáticamente se cierre una sesión PHP?

Saludos.
hola especifica mejor que queres hacer y vemos si te podemos ayudar dale ?.

Saludos
  #4 (permalink)  
Antiguo 17/11/2007, 12:58
Avatar de Daam  
Fecha de Ingreso: octubre-2007
Ubicación: Planeta Tierra
Mensajes: 152
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Configurar Timeout para sesiones

Tengo una serie de páginas escritas en php que están restringidas por sesione. Quisiera saber como se hace para que una sesión se destruya automáticamente luego de transcurrir X cantidad de tiempo de inactividad.
  #5 (permalink)  
Antiguo 17/11/2007, 13:21
 
Fecha de Ingreso: octubre-2004
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 19 años, 5 meses
Puntos: 7
Re: Configurar Timeout para sesiones

Puedes hacerlo con:
Código PHP:
ini_set ("session.cookie_lifetime","300"); 
Donde 300 serían los segundos que tarda en caducar la sesión. No calcula por si sólo la "inactividad" y tampoco se si "renueva" el número de segundos que durará la sesión si se pone en más de una página... pero espero que te sirva.
  #6 (permalink)  
Antiguo 17/11/2007, 15:20
 
Fecha de Ingreso: octubre-2003
Mensajes: 55
Antigüedad: 20 años, 6 meses
Puntos: 0
Re: Configurar Timeout para sesiones

Hola..

Lo que indica pintix se puede usar, pero tiene el inconveniente de que hagas lo que hagas el tiempo avanza y la cookie muere al tiempo determinado.

Yo encontré una solución efectiva mediante las sesiones, todo comienza cuando el usuario se loguea en tu sitio.

Esto va en la página de logueo de los usuarios
Código PHP:

$_SESSION
['hora']=time(); 
Y este en cada página a las cuales tengan acceso los usuarios depués de logearse. El valor 1200 son los segundos que quieres que dure la sesión y siempre expira en ese tiempo
Código PHP:
session_start();
if ((
$_SESSION['hora']+1200) > time())
{
session_unset();
session_destroy();
echo 
"Lo siento tu sesión ha expirado, has estado mas de 20 minutos inactivo\n";
echo 
'<a href="login.php">Clic aqui para volver a loguearte</a>';
// tambien puedes usar un header
}
else
{
$_SESSION['hora']=time();
}
...
...
... 


El usuario se encontrará con las sorpresa de que despues de 20 minutos habrá expirado la sesión por inactividad y tendrá que logearse de nuevo.


Saludos

Última edición por lordchile; 17/11/2007 a las 15:26
  #7 (permalink)  
Antiguo 17/11/2007, 16:32
 
Fecha de Ingreso: julio-2006
Mensajes: 96
Antigüedad: 17 años, 9 meses
Puntos: 2
Re: Configurar Timeout para sesiones

Cita:
Iniciado por lordchile Ver Mensaje
Hola..

Lo que indica pintix se puede usar, pero tiene el inconveniente de que hagas lo que hagas el tiempo avanza y la cookie muere al tiempo determinado.

Yo encontré una solución efectiva mediante las sesiones, todo comienza cuando el usuario se loguea en tu sitio.

Esto va en la página de logueo de los usuarios
Código PHP:

$_SESSION
['hora']=time(); 
Y este en cada página a las cuales tengan acceso los usuarios depués de logearse. El valor 1200 son los segundos que quieres que dure la sesión y siempre expira en ese tiempo
Código PHP:
session_start();
if ((
$_SESSION['hora']+1200) > time())
{
session_unset();
session_destroy();
echo 
"Lo siento tu sesión ha expirado, has estado mas de 20 minutos inactivo\n";
echo 
'<a href="login.php">Clic aqui para volver a loguearte</a>';
// tambien puedes usar un header
}
else
{
$_SESSION['hora']=time();
}
...
...
... 


El usuario se encontrará con las sorpresa de que despues de 20 minutos habrá expirado la sesión por inactividad y tendrá que logearse de nuevo.


Saludos


ese code que te pusieron anteriormente lo podes poner en un include y seria mas eficiente.Xq si repetis el code en cada .php seria muy ineficiente.

Saludos.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 20:19.