脚本不起作用。更准确地说,没有授权。这是 login.php 文件中的脚本:
session_start();
if (isset($_POST['login']) && isset($_POST['password'])) {
$database = glob('*.db');
define('DB_NAME', $database[0]);
$login = $_POST['login'];
$password = $_POST['password'];
$mdPassword = md5($password);
$db = new SQLite3(DB_NAME);
$result = $db->query("SELECT id FROM admin WHERE login = '$login' AND password = '$mdPassword' LIMIT 1");
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
if($row['id'] == 1) {
$_SESSION['user_id'] = $row['id'];
print_r($row['id']);
}
else {
echo 'Логин или пароль неверны!';
print_r($row['id']);
}
}
}
它在 admin.php 文件中:
session_start();
if (!isset($_SESSION['user_id'])) {
header('Location: login.php');
exit();
}
else {
// Открывающийся после авторизации контент
}
输入正确密码时var_dump($row['id'])的输出是int(1),输入随机密码时,什么都不显示。在这两种情况下,都不会转换到 admin.php。
在 if($row['id']) 条件中添加 header('Location: admin.php')