Foros del Web » Programando para Internet » PHP »

Cierre de session por inactividad

Estas en el tema de Cierre de session por inactividad en el foro de PHP en Foros del Web. Buenas tardes, quisiera saber como puedo cerrar una session por inactividad, espero me puedan ayudar de antemano muchas gracias....
  #1 (permalink)  
Antiguo 18/06/2009, 08:16
 
Fecha de Ingreso: mayo-2009
Mensajes: 44
Antigüedad: 14 años, 10 meses
Puntos: 0
Cierre de session por inactividad

Buenas tardes, quisiera saber como puedo cerrar una session por inactividad, espero me puedan ayudar de antemano muchas gracias.
  #2 (permalink)  
Antiguo 18/06/2009, 08:26
Avatar de martin0341  
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario - Santa Fe
Mensajes: 296
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: Cierre de session por inactividad

Las sesiones se cierran solas, luego de un tiempo de inactividad; todo esto lo controla php automaticamente.
En lo que puedes interferir es en php.ini indicandole cuanto debe durar la cookie de sesion, en esta linea session.gc_maxlifetime = 1440 que esta dado en segundos, cambias el 1440 por el numero de segundos que estimes conveniente.

También puedes cerrar la sesión "manualmente": cuando la inicias apuntas la hora, luego cada vez que el usuario pincha en alguna parte compruebas si ya ha pasado una hora (o el tiempo que quieras que dure), si ya ha pasado cierras la sesión, si aún no a pasado no haces nada.
  #3 (permalink)  
Antiguo 18/06/2009, 11:21
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 15 años
Puntos: 14
Respuesta: Cierre de session por inactividad

martin0341 no solo el php.ini interfiere en esto, de hecho sería configurar todos los archivos de los usuarios. azpo te recomiendo el siguiente manual de autentificación de usuarios, que además añade un capítulo respecto a lo que quieres.

desarrolloweb.com/manuales/37/
  #4 (permalink)  
Antiguo 01/07/2009, 16:08
Avatar de dargorsv  
Fecha de Ingreso: julio-2009
Mensajes: 25
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Cierre de session por inactividad

yo tuve ese problema recientemente, y este metodo fue el que me resulto :
1- en tu pagina donde valides el el acceso al sitio incluyes:
Código PHP:
session_start();
$_SESSION['tiempo']=time(); 
2- En cada pagina donde utilizo sesiones incluyo al principio "archivo.php" :
Código PHP:
<?php
session_start
();
include(
'archivo.php');
.....
.....
?>
3 - y el contenido de archivo.php es:
Código PHP:
<?php
$segundos 
60 //si pasa este tiempo se detecta la inactividad del usuario en el sitio
if(($_SESSION['tiempo']+$segundos) < time()) {
   echo
'<script type="text/javascript">alert("Su sesion ha expirado por inactividad';
   echo
', vuelva a logearse para continuar");window.location.href="index.php";</script>';    
}else
   
$_SESSION['tiempo']=time();
?>
Espero te sirva y si hay mas dudas, por aqui estaremos.
  #5 (permalink)  
Antiguo 11/07/2009, 07:57
 
Fecha de Ingreso: julio-2009
Mensajes: 2
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Cierre de session por inactividad

hola AMIGO oye entendi muy bien tu informacion pero estoy un poco confundido y espero que me ayudes lo que pasa que dijites que

codigo 1
session_start();
$_SESSION['tiempo']=time();
este va donde esta la secion del usuario
verdad y espero que asi sea
pero el otro codigo donde lo pongo

<?php
session_start();
include('tiempo.php');
.....
.....
?>

si entendi bien ese lo ponemos en cualquier pagina de nuestra web

y de ahi el otro codigo

<?php
$segundos = 60 //si pasa este tiempo se detecta la inactividad del usuario en el sitio
if(($_SESSION['tiempo']+$segundos) < time()) {
echo'<script type="text/javascript">alert("Su sesion ha expirado por inactividad';
echo', vuelva a logearse para continuar");window.location.href="index.php";</script>';
}else
$_SESSION['tiempo']=time();
?>

creamos un archivo php para hacer que se haga la conexion y pueda hacer que la secion de los usuarios que en un determinado timpo se cierre por que esta como inativo
  #6 (permalink)  
Antiguo 11/07/2009, 11:05
Avatar de dargorsv  
Fecha de Ingreso: julio-2009
Mensajes: 25
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Cierre de session por inactividad

Cita:
<?php
session_start();
include('tiempo.php');
.....
.....
?>
este codigo lo debes poner en todas y cada una las paginas de tu sitio, para que asi en cualquier pagina que se encuentre el usuario, si no haga nada al cabo del tiempo establecido, la sesion se vuelva inactiva. y tiempo.php debe contener el tercer codigo.
  #7 (permalink)  
Antiguo 13/07/2009, 07:22
 
Fecha de Ingreso: julio-2009
Mensajes: 2
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Cierre de session por inactividad

gracias amigo fue muy util eso muchas gracias
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 05:11.