Я работаю над веб-сайтом, и у меня проблема с моим скриптом входа в PHP. Код позволяет людям войти через кнопку входа без имени пользователя и пароля. Вот мой код:PHP Login Site, войдите без информации пользователя
<?php
$indexPage = true;
require_once 'libs/Config.php';
if (secureSession($mysqli) == true) {
header('Location: dashboard.php');
}
if (isset($_POST['username'], $_POST['login'])) {
if ($stmt = $mysqli->prepare("SELECT uid, username, password FROM admins WHERE username = ?")) {
$stmt->bind_param('s', $_POST['username']);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($uid, $username, $password);
$stmt->fetch();
if ($stmt->num_rows == 1) {
if (password_verify($_POST['password'], $password)) {
$_SESSION['uid'] = $uid;
$_SESSION['username'] = $_POST['username'];
$_SESSION['secure'] = password_hash($password.$_SERVER['REMOTE_ADDR'], PASSWORD_BCRYPT);
header('Location: dashboard.php');
exit;
} else {
echo 'Username and password don\'t match.<br/>';
}
} else {
echo 'No user exist with this username.';
}
}
}
?>
Я использую базу данных, в которой хранятся имя пользователя и пароль.
Как я могу исправить это, так что пользователь будет подписан только с действительным именем пользователя и паролем?
Пожалуйста, разместите функцию 'password_verify'. – GHugo
if (secureSession ($ mysqli) == true) { header ('Местоположение: dashboard.php'); } // Думаю, что это может быть здесь, следовательно, оно всегда верно, поэтому вы попадете на панель управления, сделайте ложь и попробуете ее посмотреть, все еще ли она – Careen
Все еще ничего не работает, кто-нибудь знает, как исправить? –