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

Cita:
Iniciado por hhs Ver Mensaje
Eso es normal por que tienes un error de lógica, estas utilizando la ontraseña que te envia el formulario para validar y esa siempre es igual. En otras palabras no estas comparando lo que te envían contra lo que tienes en la base de datos (email es el único que evaluas)
Entonces busco la contraseña en la BD...

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

Pero aunque sea exactamente igual que la de la BD no me la da por válido.

Ay.

__________________
¿Te sirvió la respuesta? Deja un +1