Ver Mensaje Individual
  #5 (permalink)  
Antiguo 13/11/2010, 09:26
leafartn
 
Fecha de Ingreso: septiembre-2010
Ubicación: colombia
Mensajes: 45
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Deslogueo de usuarios

Hola a todos! Primero que todo gracias por su interes!

Les cuento que estoy utilizando un archivo php parecido al que puso szemog, pero le hice un pequeño cambio para intentar guardar ese cierre de sesion en la base de datos

Código PHP:
<?
//si es necesario cambiar la config. del php.ini desde tu script
ini_set("session.use_only_cookies","1");
ini_set("session.use_trans_sid","0");

//iniciamos la sesión
session_name("loginUsuario");
session_start();
session_set_cookie_params(0"/"$HTTP_SERVER_VARS["HTTP_HOST"], 0);
//cambiamos la duración a la cookie de la sesión
$nomb=$_SESSION["nombreUsuario"];
$idsesion=$_SESSION["idHistorial"];

//comprobamos que el usuario este logueado
if ($_SESSION["autentificado"] != "SI") {
    
//si no está logueado lo envío a la página de login
    
header("Location: index.php");
} else {
    
//si no es asi, 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 >= 600) {
     
//si pasaron 10 minutos o más -600 segundos-
            
      
$fechahoy=date('Y-m-d H:i:s');
      
$conn mysqli_connect("localhost","root","","basededatos");
      
// $iniciasesion="INSERT INTO historial(usuario,fecha_out) VALUES ('$nomb','$fechahoy');";
      
$cierrasesion="UPDATE historial SET fecha_out='$fechahoy' WHERE id='$idsesion';";
      
$rss mysqli_query($conn,$cierrasesion);
      
      
session_destroy(); // cierro la sesión
      
      
header("Location: index.php"); //envío al usuario a la pagina de login
      //si no, actualizo la fecha de la sesión
    
}else {
    
$_SESSION["ultimoAcceso"] = $ahora;
   }
}
?>
Supuestamente al pasar 10 minutos, la sesion se cierra, y efectivamente, si dejo la pagina inactiva o cierro el navegador, a los 10 minutos se cierra la sesión. El problema es que no esta haciendo el UPDATE en la base de datos. Ese tipo de update lo estoy utilizando tambien cuando cierra la sesion normalmente, y si funciona, pero para este php no funciona.

Gracias por su colaboracion!