¿Cómo comprobar si un usuario esta autentificado?

Este código lo puse en un include al principio de la página descargas.php con acceso restringido para que cada que alguien no registrado no pueda ingresar. Pero no me funciona bien.
Usuario viene de login.html, de donde viene el "SI", ¿es algún campo oculto?
<?
session_start();
if ($_SESSION["usuario"] != "SI") {
    header("Location: login.html");
    exit();
}
?>
Sino que lo mande a la página de login

1 respuesta

Respuesta
2
Te comento un poco de donde viene el "SI".
En tu sistema, cuando un usuario se loguea, lo que se procede a hacer es crear unas variables de sesión donde guarda información, por lo general, de la persona que está logueada en ese momento, es decir, nombre de usuario por dar un ejemplo simple.
Para ello se procede de la siguiente manera:
En el archivo que llevará la función de logueo del usuario debes crear una session y ahi mismo asignarle a $_SESSION['usuario']="SI". Ahí es donde le asignas a tu variable de session un identificador que te indica que ya estás logueado en el sistema.
Esto quedaría así:
¿<?
session_start();
$_SESSION['usuario']="SI";

?>
Ahora, cuando necesites evaluar si tu usuario está logueado, solo basta con hacer un session_start() y preguntar si si $_SESSION['usuario']="SI".
Ahora vuelvo al código que colocaste en tu pregunta:
<?
session_start();
if ($_SESSION["usuario"] != "SI")
//evalúa si tu usuario NO esta logueado. Si no lo está, entonces $_SESSION['usuario']=null (o vacio), por lo que esta condición será verdadera, por lo que ingresará por el if y te redireccionará a la pagina "login.html".

{
    header("Location: login.html");
    exit();
}
?>

Ahora, lo que te recomiendo es que trabajes todos los archivos con extensión .php para que te reconozca el código hecho en PHP. Ya deberías estar al tanto de esto, pero nunca está de más decirlo.
Espero que mi explicación haya sido lo más clara posible. Si tienes algún problema con algún punto, me avisas y estaré encantado de ayudarte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas