Foros del Web » Programando para Internet » PHP »

¿Como cerrar sesion del usuario despues de 10 min de inactividad?

Estas en el tema de ¿Como cerrar sesion del usuario despues de 10 min de inactividad? en el foro de PHP en Foros del Web. Hola a todos, mi duda es como hacer una cookie o algo para que despues de 10 min de inactividad se le cierre la sesion ...
  #1 (permalink)  
Antiguo 20/09/2012, 01:37
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Busqueda ¿Como cerrar sesion del usuario despues de 10 min de inactividad?

Hola a todos, mi duda es como hacer una cookie o algo para que despues de 10 min de inactividad se le cierre la sesion al usuario, esto como por seguridad en caso de que el usuario se levanto de su lugar y dejo la sesion abierta alguien sabe como puedo hacer eso ? graxias !!
  #2 (permalink)  
Antiguo 20/09/2012, 01:52
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: ¿Como cerrar sesion del usuario despues de 10 min de inactividad?

Hola, te presento a este amigo http://php.net/manual/es/function.setcookie.php

el parametro expire es tu aliado ahora :D
  #3 (permalink)  
Antiguo 20/09/2012, 01:58
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Pregunta Respuesta: ¿Como cerrar sesion del usuario despues de 10 min de inactividad?

gracias rodrigo pero he hallado el siguiente codigo:
Código PHP:
<?php 
//iniciamos la sesión 
session_name("loginUsuario"); 
session_start(); 

//antes de hacer los cálculos, compruebo que el usuario está logueado 
//utilizamos el mismo script que antes 
if ($_SESSION["autentificado"] != "SI") { 
    
//si no está logueado lo envío a la página de autentificación 
    
header("Location: index.php"); 
} else { 
    
//sino, calculamos el tiempo transcurrido 
    
$fechaGuardada $_SESSION["ultimoAcceso"]; 
    
$ahora time(); 
    
$tiempo_transcurrido $ahora-$fechaGuardada;  

    
//comparamos el tiempo transcurrido 
     
if($tiempo_transcurrido >= 600) { 
     
//si pasaron 10 minutos o más 
      
session_destroy(); // destruyo la sesión 
      
header("Location: index.php"); //envío al usuario a la pag. de autenticación 
      //sino, actualizo la fecha de la sesión 
    
}else { 
    
$_SESSION["ultimoAcceso"] = $ahora
   } 

?>
luego lo llamo de esta forma
Código PHP:
<?php include ("tiempo.php");?
pero mi duda es si yo debo de llamar a ese include en todas mis paginas esto xq el usuario al estar logeado puede navegar por todo el sitio libremente pero en cualquier pagina en la que se quede y durante 10 min no haga nada alli le cierre la sesion, entonces debo o no llamar ese include o como seria ? gracias x tu respuesta !
  #4 (permalink)  
Antiguo 20/09/2012, 03:08
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: ¿Como cerrar sesion del usuario despues de 10 min de inactividad?

Cita:
Iniciado por rodrigo791 Ver Mensaje
Hola, te presento a este amigo http://php.net/manual/es/function.setcookie.php

el parametro expire es tu aliado ahora :D
Es muy sencillo modificar el expire de una cookie......

@adryan310 deberías llamarlo cada vez que compruebas si está logueado (Básicamente, ese sería el script de "comprobar que el usuario está logueado")
__________________
>> Eleazan's Source
>> @Eleazan
  #5 (permalink)  
Antiguo 20/09/2012, 04:04
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Pregunta Respuesta: ¿Como cerrar sesion del usuario despues de 10 min de inactividad?

ayuda tengo este codigo en el index que verifica si pasa mas de un minuto unactivo y le cierra la sesion, cabe mencionar que es un minuto xq es de ejemplo obviamente esos minutos seran mas

codigo:
Código PHP:
<?php 
session_start
();
             
  if (
$_SESSION["autenticado"] == "SI"
  {
     
$consulta_dat_usuario sprintf("SELECT * FROM bruma.usuarios WHERE usuNomFan= '%s'",$_SESSION["usuario"]);
     
$registro_usuario mysql_query($consulta_dat_usuario$miConexion) or die(mysql_error());
     
$fila_usuario mysql_fetch_assoc($registro_usuario);
      
     
//sino, calculamos el tiempo transcurrido  
       
$fechaGuardada $_SESSION["ultimoAcceso"]; 
       
$ahora date("Y-n-j H:i:s"); 
       
$tiempo_transcurrido = (strtotime($ahora)-strtotime($fechaGuardada));   

      
//comparamos el tiempo transcurrido  
        
if($tiempo_transcurrido >= 60)
        {  
         
//si pasaron 10 minutos o más  
          
session_destroy(); // destruyo la sesión  
          
header("Location: pag_usuarios/login.php"); //envío al usuario a la pag. de autenticación  
      //sino, actualizo la fecha de la sesión  
        
}else{  
              
$_SESSION["ultimoAcceso"] = $ahora;  
             }   
  }
 
?>
entonces se supone que despues de ese min deberia de cerrar la sesion y enviarlo de una vez al login nuevamente, sin embargo eso no pasa sino q si cierra la sesion, pero me manda al login hasta q actualizo el index, alguien puede corregirme por favor ?
  #6 (permalink)  
Antiguo 20/09/2012, 06:53
Avatar de carlosduran  
Fecha de Ingreso: agosto-2012
Ubicación: Aranjuez (Madrid)
Mensajes: 1
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: ¿Como cerrar sesion del usuario despues de 10 min de inactividad?

Realmente el código PHP no cierra la sesión 'él solo', es decir, el código PHP una vez ha sido procesado por el servidor web es inmutable; hay que cambiar de página o actualizarla para que se vuelva a hacer una petición al servidor y la vuelva a procesar.

Para controlar activamente el paso de tiempo desde el último acceso necesitas hacer uso de un lenguaje dinámico del lado del cliente (Javascript o cualquiera de sus frameworks, por ejemplo) con el que puedes hacer un 'cronómetro' que al pasar el tiempo estipulado te reenvíe a una página PHP que contenga el cierre de sesión y la redirección al login.
  #7 (permalink)  
Antiguo 22/01/2013, 14:42
 
Fecha de Ingreso: agosto-2012
Ubicación: México
Mensajes: 106
Antigüedad: 11 años, 8 meses
Puntos: 6
Pregunta Respuesta: ¿Como cerrar sesion del usuario despues de 10 min de inactividad?

Cita:
Iniciado por carlosduran Ver Mensaje
Realmente el código PHP no cierra la sesión 'él solo', es decir, el código PHP una vez ha sido procesado por el servidor web es inmutable; hay que cambiar de página o actualizarla para que se vuelva a hacer una petición al servidor y la vuelva a procesar.

Para controlar activamente el paso de tiempo desde el último acceso necesitas hacer uso de un lenguaje dinámico del lado del cliente (Javascript o cualquiera de sus frameworks, por ejemplo) con el que puedes hacer un 'cronómetro' que al pasar el tiempo estipulado te reenvíe a una página PHP que contenga el cierre de sesión y la redirección al login.
Amigo, esa era mi gran duda, ya que he integrado muchos scripts de PHP llamados "cierre de sesion por INACTIVIDAD", pero bueno tenia varias dudas, en realidad no entiendo en que parte del codigo PHP sabe que el usuario esta "INACTIVO", yo mas bien entiendo que le asignas un valor definido a la vida de la sesion, y ya sea que este o no este haciendo algo, cuando tu le das F5 a la pagina, o la actualizas entonces destruye la sesion y redirige si es el caso... yo necesito deslogear al usuario pero cuando realmente este INACTIVO, osea no haya interacción alguna por parte del usuario en la pagina web. Podrias apoyarme con eso?Saludos!

Etiquetas: cerrar, min, usuarios
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 04:25.