Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/11/2009, 08:36
Avatar de TheRD
TheRD
 
Fecha de Ingreso: junio-2009
Mensajes: 120
Antigüedad: 15 años, 9 meses
Puntos: 0
Fallo de autentificación

Tengo un formulario de logueo:

Código PHP:
<?php

if(isset($_SESSION['usuario']) ){ //Comprobamos si existe la sesión
Header("Location: index.php");
}
else{
//Formulario de logueo
echo '<form action="identify.php" method="POST">
Nombre de usuario: <input type="text" name="nickname" size="30"><br>
Contraseña: <input type="password" name="userpass" size="30" ><br>
<input type="submit" name="submit" value="Conectarse"></form>'
;
}

?>
Este envia los datos a otro archivo que es el que se ocupa de conectar e identificar al usuario.

Código PHP:
<?php include("config.php");
include(
"templateclass.php");

include(
"templates/header.tpl");

//Variables del formulario [+]
$nick $_POST['nickname'] ;
$pass $_POST['userpass'] ;
$pass md5($pass);
//Variables del formulario [-]

//Variables de validacion [+]
$incorrecto "La contraseña o el nombre de usuario son incorrectos. Rellene bien el formulario.";
//Variables de validacion [-]

if( ($nick == '') or ($pass == '') ){ //Se comprueba que ha completado todo

Header("Location: login.php"); //Contraseña o nombre vacío

}
else{

$usuarios=mysql_query("SELECT * FROM usuarios WHERE nickname='$nick' and password='$pass' ");

    if(
$login mysql_fetch_array($usuarios)){ //Si existe se comienza sesión, de lo contrario, mensaje de error

    
session_register("nickname");

    
session_register("user_id");

    
session_register("permisos"); 

    
$_SESSION['username'] = $login["nickname"];

    
$_SESSION['userid'] = $login["user_id"];

    
$_SESSION['permisos'] = $login["permisos"];

    
Header("Location: index.php");

    }
    else{

    echo 
$incorrecto;

    }



}

?>
El problema es que me da error al loguear, me pasa directamente a echo $incorrecto;
aunque los datos son correctos.
He probado a quitar y poner el md5 de la password, pero no cambia nada.
La contraseña cuando se registra el usuario se manda a la BD encriptada con la función md5(); por eso supuse que debería encriptar la que envía el usuario para que coincidiesen.
¿Alguna idea de porque me pasa esto?