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 ??