Ver Mensaje Individual
  #13 (permalink)  
Antiguo 23/03/2015, 08:51
Avatar de NueveReinas
NueveReinas
 
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 8 meses
Puntos: 145
Exclamación Respuesta: Problema al comparar contraseñas con crypt()

Cita:
Iniciado por hhs Ver Mensaje
Que versión de php estas manejando ?
PHP Version 5.5.21

_________________

Sigue dándome error aunque ponga la contraseña que saco desde PHPMyAdmin.

REGISTRO.PHP


Código PHP:
Ver original
  1. $password = $_POST["signup_password"];
  2.  
  3. $password_cifrada = crypt($password);
  4.  
  5.     // Inserta los datos en la base
  6.     $stm = $connection->prepare("INSERT INTO usuarios (email,password,fecha_registro,activation_key,validated,ip_registro) " . "VALUES ( ? , ? , ? , '$random_key' , 0, '$ip' )");
  7.     $stm->bind_param("sss",$email,$password_cifrada,$fecha);

________________

LOGIN.PHP

Código PHP:
Ver original
  1. $email = $_POST["user"];
  2. $pass = $_POST["pass"];
  3.  
  4. //Conecta a la BD y comprueba si es correcto
  5. $consulta = "SELECT * FROM usuarios WHERE email = '$email' AND password = '$pass'";
  6.  
  7. $resultado = mysqli_query($connection, $consulta) or die(mysql_error());
  8. $datos = mysqli_fetch_array($resultado);
  9.  
  10. $passwordDB = $datos['password'];
  11.  
  12. //$incorrecto = $datos["password"];
  13.  
  14. if($datos['email'] != $email or password_verify($pass, $passwordDB) != $pass || $datos['email'] == "" or password_verify($pass, $passwordDB) == "")
  15. {
  16.      $incorrecto = "El mail o la contraseña son incorrectos. <br> <a href='javascript:history.back()'>Volver y corregir</a>";
  17. }
  18. else if ($datos['email'] == $email or password_verify($pass, $passwordDB) == TRUE)
  19. {
  20. // Se inicia la sesión
  21.     $_SESSION['usuario'] = $datos['email'];
  22.     $_SESSION['estado'] = 'Autenticado';
  23.     $incorrecto = "Estás conectado/a como <strong>".$email."</strong> <br><br> <a href='http://www.ejemplo.com/BD/inicio'>Ir al inicio</a>";
  24.     $stm = $connection->prepare("UPDATE usuarios SET ip_ultima='$ip' WHERE email='$email' ");
  25.     $stm->execute();
  26. };

Código HTML:
Ver original
  1. <p><?php echo $incorrecto ?></p>
  2. <p>EMAIL: <?php echo $email ?></p>
  3. <p>PASSWORD: <?php echo $passwordDB ?></p>

Y entonces, si intento entrar con mi contraseña normal, no me muestra la contraseña y me dice que es incorrecto.

Si entro con la contraseña encriptada, me dice que los datos son incorrectos PERO me muestra la contraseña.

Código HTML:
El mail o la contraseña son incorrectos. 
Volver y corregir

EMAIL: [email protected]

PASSWORD: $1$Zg8NCuZx$l/HzwWa/SmwUC
__________________
¿Te sirvió la respuesta? Deja un +1