我是 PHP 新手,面临安全问题。如果他们没有登录,我用它来重定向未经授权的用户。
<?php
session_start();
if(!isset($_SESSION['user_id'])) {
header('Location: login.php');
}
?>
它在我页面的每个顶部,但是当我登录并单击我的受保护页面时,它将重定向到登录页面而不是打开原始/受保护页面并且我的会话变量设置在我的登录页面上 如何将此会话变量包含在我的受保护页面中登录页面的页面。
我是 PHP 新手,面临安全问题。如果他们没有登录,我用它来重定向未经授权的用户。
<?php
session_start();
if(!isset($_SESSION['user_id'])) {
header('Location: login.php');
}
?>
它在我页面的每个顶部,但是当我登录并单击我的受保护页面时,它将重定向到登录页面而不是打开原始/受保护页面并且我的会话变量设置在我的登录页面上 如何将此会话变量包含在我的受保护页面中登录页面的页面。
如果您何时登录,它会将您发送到登录页面,那么$_SESSION['user_id']
可能没有设置,或者您没有在文件中包含会话,要检查它,请执行以下操作:
var_dump($_SESSION['user_id'])
在页面上,并暂时省略header
如果 var_dump 返回 NULL,则表示$_SESSION['user_id']
未设置
尝试这个:
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 以外的任何值。