Итак, я хэшировал пароль для новых учетных записей, созданных на adduser.php, с этим:
if (isset($_POST['submit'])) {
require "../functions/db-insert.php";
$productcategory = [
'username' => $_POST['username'],
'password' => sha1($_POST['password']),
'isadmin' => $_POST['isadmin']
];
//$hash = password_hash($_POST['password'], PASSWORD_DEFAULT);
$category = insert($pdo, 'users', $productcategory);
echo "<p>User added</p>";
}
и теперь я пытаюсь изменить свой login.php, чтобы иметь возможность правильно подписыватьиспользуя password_verify, но я, кажется, что-то делаю не так, как я больше не могу войти.
if (isset($_POST['submit'])) {
if (isset($_POST["username"]) && isset($_POST["password"])) {
$results = $pdo->prepare("SELECT * FROM users
WHERE username = :username AND password = :password");
$values = [
':username' => $_POST["username"],
':password' => $_POST['password']
];
$password = $_POST['password'];
$hash = password_hash($password, PASSWORD_DEFAULT);
$results->execute($values);
$row = $results->fetchAll();
if(count($row) < 1){
echo '<h3><strong>Wrong username or password!</h3>';
}
else if (!password_verify($password, $hash)){
$_SESSION['loggedin'] = true;
$_SESSION['name'] = $_POST['username'];
echo "<h3>Welcome back " . $_SESSION['name'] . " !</h3>";
}
}
}
На данный момент, я не совсем уверен, что я делаю неправильно, и был бы очень признателен, если кто-томожет помочь мне разобраться с тем, что я делаю неправильно.Я просмотрел весь стекопоток, но, к сожалению, ни один из ранее заданных вопросов не работал для меня.