Tengo una plataforma de login de usuarios, cada uno de ellos tiene un perfil distinto.
los datos de cada uno los mando a buscar a una base de datos con Mysql.
He logrado con consultas sql poder logearme correctamente y mostrar el perfil correspondiente, PERO...
Tengo problemas para poder restringir el acceso y el cierre de las sessiones.
Tengo 2 archivos:
1.- Seguridad.php (seguridad antes de mostrar template)
2.- Logout.php (cierre de session)
Con seguridad.php pretendia restringir que usuarios ingresen a otros perfiles sin haberse logeado.
y con logout.php matar las sessiones activas.
Cuando se autentifica un usuario creo las sessiones de la siguiente forma:
Código PHP :
$perfil = $getPerfil['tipo_perfil'];
session_name($perfil);
session_start();
session_regenerate_id();
$_SESSION["autentificado"] = "SI";
$_SESSION["usuarioActual"] = $getUser['id_user'];
$_SESSION["ultimoAcceso"] = date("Y-n-j H:i:s");
header ("Location: $perfil");
en logout.php
Código PHP :
session_start();
session_destroy();
header("Location: index.php ");
en seguridad.php
Código PHP :
session_name();
session_start();
if ($_SESSION["autentificado"] != "SI") {
header("Location: index.php");
exit();
} else {
$fechaGuardada = $_SESSION["ultimoAcceso"];
$ahora = date("Y-n-j H:i:s");
$tiempo_transcurrido = (strtotime($ahora)-strtotime($fechaGuardada));
if($tiempo_transcurrido >= 600) {
session_destroy();
header("Location: $root");
}else {
$_SESSION["ultimoAcceso"] = $ahora;
}
}
al arrancar la aplicación, ingreso sin problemas a un perfil determinado:
http://localhost/proyecto/perfil_1
Al cerrar la session con logout.php me re direcciona a http://localhost/proyecto/
pero me doy cuenta que agregando manual mente http://localhost/proyecto/perfil_1 en la barra de direcciones la session aún sigue activa.
A que se debe ??
Lo mismo pasa con seguridad.php.
Ingreso sin problemas a un perfil http://localhost/proyecto/perfil_1 pero me di cuenta que cambiando la url manualmente a http://localhost/proyecto/perfil_2 ingreso sin autentificación a otro perfil.
A que se debe ??
