Hace casi una semana que estoy luchando con este código...
He leído manuales, revisado foros, he intentado correr el código en diferentes plataformas (en Windows con XAMPP y WampServer, en Linux con XAMPP y LAMPP, subí los archivos a un servidor web y lo ejecuté desde allí)
Y sinceramente, estoy llegando a cansarme seriamente de insistir para encontrar dónde está el problema...
Este es el código que finalmente he logrado armar (y en algún lado posee algún conflicto).
Sencillamente, logro poner usuario y clave, pero me queda la página en blanco.
Ni siquiera me arroja error.
Sé que debo "buscar" antes de publicar, pero sinceramente ya no tengo más fuerzas y me encuentro con que debo terminar este esquema y no encuentro (en mis propias neuronas) el alivio que necesito!
Creo que en tantos intentos que he hecho, he terminado por descomponer el código.
No termino de comprender del todo las variables SESSION y su funcionamiento, por más que he leído y me ha parecido sencillo, al aplicarlo me resulta nuevamente incomprensible e inaccesible.
Solicito una mano en lo que cualquiera de ustedes pueda ayudarme al respecto.
Muchísimas gracias!
Estos son los archivos
Archivo 1 - index.php :
Código PHP:
<?php
session_start();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$nombre = $_POST['nombre'];
$contrasena = $_POST['contrasena'];
//Creamos una variable para verificar si el usuario con ese nombre y contraseña existe.
$usuario_encontrado = false;
if ( ! ($conexion = mysql_connect("localhost", "USUARIO", "CLAVE"))) {
echo "No se ha podido conectar con PHPMyAdmin!";
exit();
} else {
$nombre = $_POST['nombre'];
$contrasena = $_POST['contrasena'];
mysql_select_db("BASE-DE-DATOS", $conexion);
$query = "SELECT * FROM usuarios WHERE usuario='" . $_POST['nombre'] . "' and pass='". $_POST['contrasena'] . "'";
$q = mysql_query($query);
$num = mysql_num_rows($q);
if ($num > 0) {
echo '<a href="sistema.php">Ingresa al sistema</a>';
$usuario_encontrado = true;
}
//Verifica si dentro del bucle se ha encontrado el usuario.
if($usuario_encontrado){
$_SESSION['logueado'] = true;
$_SESSION['nombre'] = $nombre;
header('Location: sistema.php');
exit;
} else {
$error_login = true;
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title> Logueo </title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php if(isset($error_login)): ?>
<p style="color: #f00; font-family: Calibri, Arial, Verdana, 'sans-serif'; font-weight: bold; margin: 20px;"> Usuario o contraseña incorrectos. Intente nuevamente... </p>
<?php endif; ?>
<div class="box">
<form method="post" action="index.php">
<label for="nombre" class="INPUTS"> Nombre </label>
<input type="text" name="nombre" id="nombre" required />
<br />
<label for="contrasena" class="INPUTS"> Contraseña </label>
<input type="password" name="contrasena" id="contrasena" required />
<br />
<input type="submit" value="Enviar" />
</form>
</div>
</body>
</html>
Archivo 2 - sistema.php :
Código PHP:
<?php
session_start();
if(isset($_SESSION['logueado']) and $_SESSION['logueado']){
$nombre = $_SESSION['nombre'];
}else{
//Si el usuario no está logueado redireccionamos al login.
echo "Debe estar logueado para ingresar a este sector...";
header('Location: index.php');
exit;
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title> Página de bienvenida </title>
</head>
<body>
<h1> Bienvenido/a <?php echo $nombre; ?> </h1>
<p> <a href="cerrar_sesion.php"> Cerrar sesión </a> </p>
</body>
</html>
Código PHP:
<?php
session_start();
if (isset($_SESSION['logueado']) and $_SESSION['logueado']) {
$_SESSION['logueado'] = false;
unset($_SESSION['nombre']);
}
header('Location: index.php');
exit;
mysql_free_result($resultado); //Libera la busqueda de la base de datos...
?>