He estado consultando y aunque el título de este tema es similar a muchos otros, no encuentro la solución.
El objetivo final es comprobar en cada página del sitio que el usuario está logueado.
Después de loguearse te lleva a la página principal, que está escrita en html. Y en ella, antes de nada, comprueba que esté logueado. Aunque en ésta no sea necesario lo será en las siguientes y entonces tendrá el mismo problema.
El código es este (he probado también include)
Código:
Y la página php logueado.php tiene este código:<body> <?php require_once("logueado.php"); ?> BIENVENIDO </body> </html>
Código:
Sé que en la página php se podría hacer todo sin necesidad de poner la función, pero ese es otro lío que no viene, creo, al caso.<?php /** * Veridica si el usuario está logueado * @return bool */ function estoy_logueado () { @session_start(); //inicia sesion (la @ evita los mensajes de error si la session ya está iniciada) if (!isset($_SESSION['usuario'])) return false; //no existe la variable $_SESSION['USUARIO']. No logueado. if (!is_array($_SESSION['usuario'])) return false; //la variable no es un array $_SESSION['USUARIO']. No logueado. if (empty($_SESSION['usuario']['$usuario'])) return false; //no tiene almacenado el usuario en $_SESSION['USUARIO']. No logueado. //cumple las condiciones anteriores, entonces es un usuario validado return true; } if (!estoy_logueado()) { // si no estoy logueado header('Location: login.html'); //saltamos a la página de login die('Acceso no autorizado'); // por si falla el header (solo se pueden mandar las cabeceras si no se ha impreso nada) } ?>
La cuestión es que si ejecuto directamente la página logueado.php, creo que funciona perfectamente por que me dice que no estoy autorizado.
Pero si a continuación ejecuto la página html de bienvenida pues no me dice que no estoy autorizado, si no que me da la bienvenida.
En fin que no entiendo nada.
He leído por ahí que me evitaría este problema si todas mis páginas fueran php. Pero como novato que soy miedo me da cambiarlas.
También he leído algo de que si el servidor habría que configurarlo pra que hiciera no se qué. A eso aún lo tengo más miedo.
En fin, espero haber sido claro y muchas gracias por adelantado.
Tened buen día.