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!