Sehen Sie sich Ihre Abfrage noch einmal an:
SELECT password FROM users WHERE email = :email
Sie wählen das Spaltenkennwort aus,
Wenn Sie die Zeile abrufen, verwenden Sie das Feld hash
$_SESSION['hash'] = $row1['hash'];
Anders als Sie denken, ist Ihr Skript überhaupt nicht einfach. Sie führen 3 Abfragen für denselben Datensatz aus. Versuchen Sie es mit diesem Ansatz
$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();
}