He creado una base de datos con MySQL y un sistema de registro que parece funcionar, pues cuando introduzco los datos en el formulario estos pasan a la base de datos. Ahora estoy intentando crear un sistema de Login, que reconoce bien a los usuarios registrados, pues cuando introduzco los datos consigo que salte la función displayThanks() con un mensaje de agradecimiento por loguearse.
Pero el tema que no tengo muy claro es el de los permisos y como mostrar la web a las personas registradas y que han conseguido acceder. Para empezar, quiero que el menú en el que aparecen las opciones de Iniciar Sesión o Registrarse desaparezcan para que se vean el nombre del usuario que ha accedido y una opción de Logout. Os pego parte del codigo que llevo hasta ahora, que he copiado de un libro de fundamentos de PHP.
Por una parte existe un script login.php, que tiene una función para procesar el formulario de logueo que es la siguiente:
Código PHP:
function processForm() {
$requieredFields = array( "username", "password" );
$missingFields = array();
$errorMessages = array();
$member = new Member ( array(
"username" => isset($_POST["username"]) ? preg_replace( "/[^ \-\_a-zA-Z0-9]/", "", $_POST["username"] ) : "",
"password" => isset($_POST["password"]) ? preg_replace( "/[^ \-\_a-zA-Z0-9]/", "", $_POST["password"] ) : "",
) );
foreach ($requieredFields as $requieredField) {
if (!$member->getValue($requieredField) ) {
$missingFields[] = $requieredField;
}
}
if ($missingFields) { /
$errorMessages[] = '<p class="error">Por favor, asegúrese de haber rellenado todos los campos del formulario de entrada.</p>';
} elseif ( !$loggedInMember = $member->authenticate() ) {/
$errorMessages[] = '<p class="error">El nombre de usuario o contraseña son incorrectos. Por favor, asegúrese de haberlos escrito correctamente.</';
}
if ($errorMessages) {
displayForm($errorMessages, $missingFields, $member);
} else {
$_SESSION["member"] = $loggedInMember;
displayThanks();
}
}
En el menú en el que quiero que desaparezcan el iniciar sesión y el registrarse he escrito lo siguiente:
Código PHP:
<?php
session_start();
$usuario = $_SESSION["member"];
if(empty($usuario)) {
echo "<a href='login.php'> Iniciar sesión</a> <span style='color:#dde5f0'> | </span> <a href='registro.php'> Registrarse </a>";;
} else {
echo $usuario;
} ?> </p>
El error que me aparece es el siguiente:
¿Qué hago mal? ¿Algún consejo?
Gracias y un saludo.