usercheck.php
// Start a session.
session_start();
// Check the database for the user.
$user_check = $_SESSION['user_username'];
$ses_sql = mysqli_query($db,"SELECT user_username FROM users WHERE user_username='$user_check' ");
$row = mysqli_fetch_array($ses_sql,MYSQLI_ASSOC);
$login_user = $row['user_username'];
// If the check fails, redirect to the login page.
if(!isset($user_check)) {
header("Location: /index.php");
}
我在每个页面上都有一个文件,该文件应检查用户是否已登录。如果是,则显示该页面。如果没有,它会重定向回索引。
问题在于它不重定向,我无法弄清楚原因。即使成功包含此文件,我也可以轻松键入我想要访问的页面的URL并完全绕过登录。
我做错了什么或过时了?
修改:包含该文件的网页示例。
<?php
$pageTitle = 'Dashboard';
$pageClass = 'dashboard';
include_once('./assets/template/template.php');
// Start the page content.
function getPageContent() {
global $mysqli;
// Connect to database.
include_once('./assets/include/db-connect.php');
// Check the database for the user.
include_once('./assets/include/db-user-check.php');
?>
... some html ...
<?
// Close the database connection.
$db->close();
}
?>
答案 0 :(得分:0)
尝试将if(!isset($user_check)) {
更改为if(!isset($login_user)) {
。可能$_SESSION['user_username']
的值不正确。如果情况并非如此,请在if语句中尝试var_dump($_SESSION); exit();
,然后从那里进行问题排查。