Problema con password_hash
Publicado por Luis (4 intervenciones) el 15/08/2020 00:06:39
Estoy trabajando en una pagina en la cual el administrador pueda crear usuarios, el problema es que a la hora de generar la contraseña si se ejecuta la consulta pero a la hora de querer ingresar con la nueva cuenta al log in me aparece error. Lo que pasa es que por ejemplo, si pongo como contraseña "hola", el hash me lo pasara a algo como "$2y$10$7nZ1b5si", despues de que intento ingresar con hola a mi log in no me permite, pero si entro con la credencial "$2y$10$7nZ1b5si" si me lo permite. Gracias de antemano.
Este es el log in con el que estoy trabajando:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if (!empty($_POST['username']) && !empty($_POST['password'])) {
$sql = "INSERT INTO user (username, password, role_id) VALUES (:username, :password, :role_id)";
$stmt = $con->prepare($sql);
$stmt->bindParam(':username', $_POST['username']);
$password = password_hash($_POST['password'], PASSWORD_BCRYPT);
$stmt->bindParam(':password', $password);
$stmt->bindParam(':role_id', $_POST['role_id']);
if ($stmt->execute()) {
$message = 'Usuario creado exitosamente.';
header('location: login.php');
} else {
$message = 'Hubo un problema al crear el usuario.';
}
}
Este es el log in con el que estoy trabajando:
1
2
3
4
5
6
7
8
9
if(isset($_POST['username']) && isset($_POST['password'])){
$username = $_POST['username'];
$password = $_POST['password'];
$db = new Database();
$query = $db->connect()->prepare('SELECT *FROM user WHERE username = :username AND password = :password');
$query->execute(['username' => $username, 'password' => $password]);
$row = $query->fetch(PDO::FETCH_NUM);
Valora esta pregunta


0