Siguiendo el ejemplo de www.desarrolloweb.com sobre el sistema de autentificación me aparece un problema al intentar destruir la sesión y es que una vez hecho, si vuelvo a acceder a mi página (supuestamente securizada) me sale cuando no debería hacerlo.
el fichero seguridad.php contiene esto:
Código PHP:
ini_set("session.use_only_cookies","1");
ini_set("session.use_trans_sid","0");
//Iniciamos la sesión
session_name("loginUsuario");
session_start();
//Cambio la duración a la cookie de la sesión
session_set_cookie_params(0, "/", $_SERVER['HTTP_HOST'], 0);
//Compruebo que el usuario está logueado
if ($_SESSION["autentificado"]!="SI"){
header("Location: errorvalidacion.php");
exit(); //Salgo del script
}else{
//Calculo el tiempo transcurrido
$fechaGuardada = $_SESSION["ultimoAcceso"];
$fechaActual = date("Y-n-j H:i:s");
$tiempo_transcurrido = (strtotime($fechaActual)-strtotime($fechaGuardada));
//Compruebo el tiempo transcurrido (medido en segundos)
if ($tiempo_transcurrido >= $duracionSesion){
session_destroy(); //destruyo la sesión
header("Location: errorvalidacion.php");
}else{
//Actualizo la fecha de la sesión
$_SESSION["ultimoAcceso"] = $fechaActual;
}
}
Código PHP:
ini_set("session.use_only_cookies","1");
ini_set("session.use_trans_sid","0");
session_name("loginUsuario"); //asigno un nombre a la sesión para poder guardar diferentes datos.
session_start(); //inicio la sesión
//Cambio la duración de las cookies de la sesión
session_set_cookie_params(0,"/",$_SERVER['HTTP_HOST'],0);
$_SESSION["autentificado"] = "SI";
//Nombre del usuario validado para mostrar en la cabecera de todo el cPanel
$_SESSION["nombre"] = $dato["nombreusuario"];
//Defino la fecha y hora de inicio de sesión (formato: aaaa-mm-dd hh:mm:ss)
$_SESSION["ultimoAcceso"] = date("Y-n-j H:i:s");
header ("Location: cpaneladmin.php"); //Aquí poner la página con el cPanel (cpanel.php)
}
}else{
//redirijo a admin.php con error de usuario
header("Location: errorvalidacion.php");
}
Código PHP:
session_start();
session_destroy();
Pues bien, si vuelvo a teclear mi página.php no debería dejarme acceder puesto que ya he destruido la sesión y en cambio me sigue saliendo.
¿Puede ser que haya que destruir alguna cosa más? ¿Las cookies? ¿Otras sesiones más que haya creadas?
¿Alguna idea o sugerencia? Gracias.