Bueno, sirve que alguien se da una vuelta y mejora el script o me regaña porque es
mala práctica
Y ya no recuerdo si lo hice o sólo lo ocupé y modifiqué para mi necesidad, si se parece al código de alguien, pues disculpa, pero que bien me funcionó
Este script lo llamo a cada página de mi sitio asegurado con la función
include Código PHP:
<?
//iniciamos la sesión
session_name("usuario");
$variable=$_SESSION['usuario'];
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.html");
} else {
//si no, 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 >= 1200) {
//si pasaron x minutos
//aquí tenía una conexión y actualización a bd pero es a gusto del programador
session_unset();
session_destroy();
header("Location: index.html"); //envío al usuario al indice
//sino, actualizo la fecha de la sesión
}else {
$_SESSION['ultimoAcceso'] = $ahora;
}
}
?>
Ahora si se fijan estoy estableciendo 1200 segundos de inactividad para que destruya la sesión.
Investigué algo acerca de esto, pregunté en este foro en el apartado de js pero no encontré la solución definitiva para borrar datos de sesiones no cerradas correctamente, incluso me topé con la configuración del archivo php.ini, pero no sirve si usas un servidor que no es tuyo, ahí tendrías que tener contacto con un administrador...
Suerte y adelante para usarlo o modificarlo o criticarlo.