Foros del Web » Programando para Internet » PHP »

Cerrar Sesion despues de un tiempo

Estas en el tema de Cerrar Sesion despues de un tiempo en el foro de PHP en Foros del Web. Quisiera saber como puedo hacer para cerra una sesion despues de pasado un tiempo. Estoy trabajando con un logrador y lo hago con Sesion para ...
  #1 (permalink)  
Antiguo 28/07/2005, 17:01
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 12 años, 6 meses
Puntos: 3
Cerrar Sesion despues de un tiempo

Quisiera saber como puedo hacer para cerra una sesion despues de pasado un tiempo.
Estoy trabajando con un logrador y lo hago con Sesion para usuario y pass y lo que busco es que la pagina que le abro al usuario loguaedo caduque depues de un teimpo. Probe con session_cache_expire () pero no veo los resultados.
Gracias
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #2 (permalink)  
Antiguo 28/07/2005, 17:26
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Las sesiones se cierran solas, una vez que haz iniciado una se espera a que el usuario no acceda algun script que continue la sesion y se borra el archivo de sesion, 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.
  #3 (permalink)  
Antiguo 28/07/2005, 17:30
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
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.

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #4 (permalink)  
Antiguo 28/07/2005, 17:31
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 12 años, 6 meses
Puntos: 3
Gracias . Lo reviso y sigo adelante =)
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #5 (permalink)  
Antiguo 29/07/2005, 00:18
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 12 años, 6 meses
Puntos: 3
Dj Nelson, como haces eso?. De todas maneras , descubri que en realida muy importante por el momento no es, ya que si el usuario manda la pagina a Favoritos o la guarda, no puede volver a cargarla por dos motivos, uno es el inicio de sesion como usuario y otro que esta dentro de un iframe.
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #6 (permalink)  
Antiguo 29/07/2005, 01:15
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
lo que dice DJ Nelson seria mas menos asi:

inicia.php
Código PHP:
<?php
   session_start
();
   
$_SESSION['hora_inicio']=date("H-i-s");
   
$_SESSION['time_ini']=mktime(date("H"),date("i"),date("s"),date("n"),date("d"),date("Y"));
?>
<a href="muestradif.php">Ir a Ver dif</a>
muestradif.php
Código PHP:
<?php
   session_start
();
  
   
$timeact=mktime(date("H"),date("i"),date("s"),date("n"),date("d"),date("Y"));
   
$dif$timeact $_SESSION['time_ini'];
   
   echo 
"Inicial    : ".$_SESSION["hora_inicio"]."<br>";
   echo 
"Actual     : ".date("H-i-s")."<br>";
   echo 
"Diferencia : ".date("H-i-s",$dif)."<br>";
   
   
//si pasa x minutos cierro sesion
   
if (date("i",$dif)>=5)
   {
      echo 
"Sesion cerrada";
      
session_destroy();
   }
?>
en la primera pagina guardo un timestamp, en las otras construye el timestamp actual, los resto (son numeros enteros) y construyo la diferencia con date().
En este ejemplo deje pasar 5 minutos, podrian ser segundos y horas.
  #7 (permalink)  
Antiguo 05/08/2005, 13:00
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 12 años, 6 meses
Puntos: 3
una pregunta mas Claudio. Este codigo que me pasaste,( que no lo probe todavia, porque estoy con el tema de las funcionalidades), te anula las SESSION que tengo del loguin de los usuarios? porque al principio probe algo parecido y me tiraba un error de que la sesion ya estaba iniciada. No me acuerdo bien. Por lo que leo del codigo no tendria problemas porque estas metiendo el time en varaibles de sesion, lo que me confunde es session start(). GRACIAS. Y sigo adelante....
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #8 (permalink)  
Antiguo 05/08/2005, 13:16
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 13 años
Puntos: 34
Entre a leer, y me es inevitable, al menos con esto, detallar que llamar a date tantas veces es totalmente redundante:
Cita:
Iniciado por claudiovega
$timeact=mktime(date("H"),date("i"),date("s"),date ("n"),date("d"),date("Y"));
Con hacer asi basta:
$timeact = mktime( date( "H,i,s,n,d,Y" ) );

Y es mas, no es necesario usarla si se quiere sacar la actual, con hacer:
$timeact = time();
estariamos haciendo lo mismo

PD: Mi intención es la de comprartir, no la de criticar, lo aclaro por que no quiero malos entendidos
__________________
Mi punto de partida es Que Bueno Lo Nuevo
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 00:14.