我是PHP的新手,面临安全问题。 如果他们没有登录,我会用它来重定向未经授权的用户。
<?php
session_start();
if(!isset($_SESSION['user_id'])) {
header('Location: login.php');
}
?>
它位于我的页面的每个顶部但是当我登录并单击我的受保护页面时,它将重定向到登录页面而不是原始/受保护页面打开,并且我的会话变量在我的登录页面上设置如何包含此会话变量在我的受保护页面中登录页面。
答案 0 :(得分:1)
如果您在登录时,它会将您发送到登录页面,然后可能未设置$_SESSION['user_id']
,或者您没有在文件中包含会话,要检查它,请执行以下操作:
var_dump($_SESSION['user_id'])
在页面上,如果var_dump返回NULL,暂时不会出现header
,这意味着$_SESSION['user_id']
未设置
答案 1 :(得分:0)
试试这个:
if(!isset($_SESSION['user_id']))
{
// The user id variable is not set. Therefore, the user is most likely a guest.
$_SESSION['user_id'] == 0;
}
if($_SESSION['user_id'] == 0)
{
// The user does not have a user id set. We assume, therefore, that they are a guest.
header("Location: login.php");
}
此外,在您的登录脚本中,请确保将$_SESSION['user_id']
设置为0以外的任何其他内容。