Cita:
Iniciado por Nazka 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 = 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
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;
}
}
?>
Espero se sea claro esto lo pudes llamar a travez de un include
ejemplo
Código PHP:
<?php include ("tiempo.php");?
Consulta/comentario:
Para que gestionas la fecha en ese formato si al final haces una conversión de tu formato de fecha a un "unix timestamp" para operar con el (hacer una diferencia en segundos).
Simplemente tomando tu fecha/hora actual como un time() (Time Stamp, que son segundos transcurridos desde blablabla ... (era "unix")) te evita el proceso de conversión que haces con:
$ahora = date("Y-n-j H:i:s");
$tiempo_transcurrido = (strtotime($ahora)-strtotime($fechaGuardada));
Sería simplemente:
$ahora = time();
$tiempo_transcurrido = $ahora-$fechaGuardada;
Un saludo,