[英]How can I implement an access control system with session variables?
在登录页面上,我设置了一个带有 ID 的会话变量(我们假设 ID 为 1 的始终是 admin)。 当用户浏览到只有管理员有权访问的页面时, check.php
充当中间人,检查会话变量是否已设置,如果为 1,则它将用户重定向到管理页面,并且如果不是,另一页。 这是我的代码:
<?php
include "connection.php";
session_start();
#Check to see if session variables are set properly. Only the administrator can have access to this page
if(!isset($_SESSION) || $_SESSION['id'] != 1) {
header('Location: restricted.php');
die();
} else {
header('Location: admin.php');
die();
}
?>
当我转到我的登录页面并使用管理员凭据成功登录并尝试 check.php 页面时,它会将我带到 admin.php。 如果我不登录,它仍会将我带到管理页面。
我对这个脚本的问题到底是什么?
因为如果不满足条件, else 将执行。 要么更改 else 中的重定向,要么创建另一组条件。
if(!isset($_SESSION) || $_SESSION['id'] != 1) { // CONDITION NOT MET
header('Location: restricted.php');
die();
} else {
header('Location: admin.php'); // REDIRECT OCCURS
die();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.