अपनी क्वेरी को एक बार और देखें:
SELECT password FROM users WHERE email = :email
आप कॉलम पासवर्ड चुन रहे हैं,
जब आप पंक्ति लाते हैं तो आप hash
. फ़ील्ड का उपयोग कर रहे होते हैं
$_SESSION['hash'] = $row1['hash'];
आपके विचार के विपरीत, आपकी स्क्रिप्ट बिल्कुल भी सरल नहीं है, आप एक ही रिकॉर्ड पर 3 प्रश्न कर रहे हैं, इस दृष्टिकोण को आजमाएं
$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();
}