Hola, estoy implementando un sistema de autentificación sencillito, en la que en la página principal, se solicita un y password para acceder a la aplicación, y después en otra página llamada "
control_acceso.php", coteja los datos introducidos con los que hay guardados en una base de datos, y dependiendo de si se han introducido correctamente, pues entra en la aplicación, o vuelve a la página de principal para pedrite el usuario y contraseña, nada del otro mundo, pero no sé porque me dice siempre que los datos son erróneos, incluso cuando meto los correctos. En la página principal tengo el formulario y estas dos líneas :
Código PHP:
if ($_GET["errorusuario"] == "si")
echo "Datos incorrectos, vuelva a intentarlo";
control_acceso.php Código PHP:
ob_start(); // Para que no haya problemas con el buffer de salida después al enviar cabeceras, como 'header()'
include ("conexion.php"); // incluímos la función para la conexión a la B.D.
$link = Conectarse("servidor", "usuario", "password", "base_datos"); // llama a la función del fichero anteriormente incluido
$consulta = "SELECT * FROM usuarios WHERE usuario = ";
$consulta .= $_POST['user'] . " AND clave = " . $_POST['passwd'];
$respuesta = mysql_query($consulta, $link);
// 'user' y 'passwd' son los nombres de los campo del formulario, y 'usuario' y 'clave' son los nombres de los campos de la tabla, 'usuarios', de la B.D. que es donde está guardado el nombre de usuario y la contraseña
if (mysql_num_rows($respuesta) != 0)
{
// usuario y contraseña válidos
// defino una sesión y guardo los datos
session_start();
$_SESSION["autentificado"] = "SI";
header("Location: menu.php");
}
else
{
// si no existe, le mando otra vez a la portada
header("Location: index.php?errorusuario=si");
}
mysql_close($link);
En cada página que quiero que se necesite autorización, le añado la siguiente línea:
Código PHP:
require_once ("seguridad.php");
seguridad.php Código PHP:
// Inicio la sesión
session_start();
// COMPRUEBO QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado"] != "SI")
{
// si no existe, envío a la página de autentificación
header("Location: index.php");
// además salgo de este script
exit();
}
¿Qué es lo que falla?, ¿porqué me dice siempre que los datos son erróneos?.
Un saludo.