Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Hash kata sandi kembali salah

Lihat kueri Anda sekali lagi:

SELECT password FROM users WHERE email = :email

Anda memilih kata sandi kolom,

ketika Anda mengambil baris, Anda menggunakan bidang hash

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

Tidak seperti yang Anda pikirkan, skrip Anda sama sekali tidak sederhana, Anda melakukan 3 kueri pada rekaman yang sama, coba pendekatan ini

$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. Indeks (berbasis nol) harus lebih besar dari atau sama dengan nol

  2. Waktu Mulai MySQL Lambat dalam mode GTID? Ukuran File Log Biner Mungkin Menjadi Masalah

  3. PHP PDO - Jumlah Baris

  4. jenis bidang tidak terdefinisi sunspot solr

  5. Cara mereset kata sandi root MySQL