Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Hàm băm mật khẩu trả về sai

Xem xét truy vấn của bạn một lần nữa:

SELECT password FROM users WHERE email = :email

Bạn đang chọn mật khẩu cột,

khi bạn tìm nạp hàng, bạn đang sử dụng trường hash

$_SESSION['hash'] = $row1['hash'];

Không như bạn nghĩ, script của bạn không hề đơn giản chút nào, bạn đang thực hiện 3 truy vấn trên cùng một bản ghi, hãy thử cách làm này

$email = $_POST['email'];
$pass = $_POST['password'];

if($email === ''){
    $_SESSION['message1'] = 'Enter a valid email';
    header('Location: index.php');
    exit();
}

if($pass === ''){
    $_SESSION['message1'] = 'Enter a valid password';
    header('Location: index.php');
    exit();
}

$query = 'SELECT name, email, password 
          FROM users 
          WHERE email = :email LIMIT 1';


$stmt = $con->prepare($query);
$stmt->bindValue(':email', $email);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);

if(!$row){
    $_SESSION['message1'] = 'User does not exist';
    header('Location: index.php');
    exit();
}

//hashed password from Database
$hash = $row['password'];

if(password_verify($pass, $hash)){
    $_SESSION['hash'] = $row['password'];
    $_SESSION['name'] = $row['name'];
    $_SESSION['email'] = $row['email'];
    header('Location: profile.php');
}else{
    $_SESSION['message1'] = 'Make sure email and password are correct';
    header('Location: index.php');
    exit();
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn các bản ghi từ một tuần trước trong mysql

  2. đăng nhập với tư cách Quản trị viên và người dùng bình thường

  3. Django lỗi mysql

  4. Sphinx beta có được sử dụng trong sản xuất không?

  5. Mã hóa AES trong mysql và php