Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/02/2013, 10:54
Avatar de Middrel
Middrel
 
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Error en login al validar datos

Hola buenos días,

Tengo un problema en un código para validar los datos de un usuario registrado.

Introduzco los datos correctos sin embargo no me deja continuar. Les muestro los códigos:

Tengo el siguiente formulario para ingresar los datos del usuario a la bd.

Código HTML:
<form action="usuario.php" method="post" name="registra-form" id="valida-form">
       <div class="title-forms">Configuración de Usuarios</div>
        <input type="text" name="usuario" id="usuario" class="adaptive-input-b" placeholder="Usuario" required>
        <input type="password" name="password" id="password" class="adaptive-input-b" placeholder="Password" required>                        
        <input type="password" name="confirma" id="confirm" class="adaptive-input-b" placeholder="Confirmar Password" required>                                                
        <input type="email" name="email" id="email" class="adaptive-input-b" placeholder="Correo electrónico" required>
        <select name="tipoUser" id="tipoUser" class="adaptive-input-b">
        	<option value="0">:: Seleccione el tipo de usuario ::</option>
              	<option value="General">General</option>                                                                                                                
               	<option value="Administrativo">Administrativo</option>
               	<option value="Normal">Normal</option>
        </select>
        <input type="submit" name="enviar-usu" id="enviar-usu" class="adaptive-btn" value="AGREGAR">
        <input type="submit" name="borrar-usu" id="borrar-usu" class="adaptive-btn" value="ELIMINAR">
        <input type="submit" name="cambiar-usu" id="cambiar-usu" class="adaptive-btn" value="CAMBIAR">       
        <input type="submit" name="ver-usu" id="ver-usu" class="adaptive-btn" value="BUSCAR">                                                                
</form> 
y por medio de un script php se envían los datos a la base:

Código PHP:
if(isset($_POST['enviar-usu'])){
        
    
$usuario $_POST['usuario'];
    
$password $_POST['password'];
    
$email $_POST['email'];
        
    
$codifPass md5($password);
    
    
$sqlInsertUsuario mysql_query("Insert into gb_usuarios(gbuser_usuario, gbuser_password, gbuser_email, gbuser_tipo) Values ('$usuario', '$codifPass', '$email', '$_POST[tipoUser]')");
        
    
$mensaje 'El usuario ha sido agregado a la tabla de Usuarios';

Como verán uso el md5 pra encriptar el password, el usuario que di de alta (es usuario de prueba) fue el siguiente:

Usuario: Administrador
Password: gb13admin que resultó codificado en 8f8a2f654b442d33c1a9679ee2a45464
Correo: [email protected]
Tipo: General

Hasta ahí todo bien, ahora el formulario del login

Código HTML:
<form action="login.php" method="post">	
      	<input type="text" name="user" id="user" class="adaptive-input-a" placeholder="Nombre de usuario" required />
       	<input type="email" name="email" id="email" class="adaptive-input-a" placeholder="Correo electrónico" required />                    
       	<input type="password" name="password" id="password" class="adaptive-input-a" placeholder="Password" required /><br />
        <span class="format-textos-login"><?php echo $errorSession . ' ' . $msjError; ?></span><br />
        <input type="submit" name="conectar" id="conectar" class="adaptive-btn" value="CONECTAR">
</form> 
y el script que envía la petición a la base de datos:

Código PHP:
function variablesSeguras($variable){
    
$variable addslashes(trim($variable));
    return 
$variable;
}

if(isset(
$_POST['conectar'])) {
       if(!
ctype_alnum($_POST['user'])){ 
        
$msjError 'Sólo se permiten caracteres A-Z, a-z, 0-9'
    } else { 
            
$login variablesSeguras($_POST['user']); }
            
    if(!
ctype_alnum($_POST['password'])){ 
        
$msjError 'Sólo se permiten caracteres A-Z, a-z, 0-9'
    } else { 
        
$passw variablesSeguras($_POST['password']); 
        
$passCod md5(trim($passw));
    }
        
    if(!
preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/"$_POST['email'])) { 
        
$msjError 'Su email no es válido'
    } else { 
        
$email variablesSeguras($_POST['email']); 
    }
        
    
$sqlSelectUser mysql_query("Select * from gb_usuarios Where gbuser_usuario = '$login' and gbuser_password = $passCod and gbuser_email = '$email'");
    
$rowSelectUser mysql_fetch_array($sqlSelectUser);
        
    
$_login_a $rowSelectUser['gbuser_usuario'];
    
$_login_b $rowSelectUser['gbuser_password'];
    
$_login_c $rowSelectUser['gbuser_email'];
    
$_login_d $rowSelectUser['gbuser_tipo'];
        
    if(
$login == $_login_a && $passw == $_login_b && $email == $_login_c){
        
        
$_SESSION['estado'] = "logueado";
        
$_SESSION['usuario'] = $_login_a;
        
$_SESSION['tipo'] = $_login_d;
        
header('Location:index.php');
                    
    } elseif(
$login != $_login_a || $passw != $_login_b || $email != $_login_c) {
    
        
$errorSession "Los datos proporcionados son incorrectos.";
    }

Pienso, no estoy seguro, que el error está al desencriptar el password, porque al principio tenía el formulario sin encriptarlo, cuando use la función fallo. Sin embargo, imprimiendo las variables veo que lleva la misma cadena que la que está en la base de datos [8f8a2f654b442d33c1a9679ee2a45464].

¿Alguien sabe si estoy cometiendo algún error? De antemano agradezco por sus comentarios.

Saludos!