我正在管理面板和管理员在不同用户之间划分任务,所以我希望特定用户只使用他们被允许使用的特定页面(所有其他页面的链接都不应该是可点击的)。
我正在传递一个唯一的页面ID,每个页面的URL和允许用户使用的页面ID都存储在数据库中,因此我需要将我的会话变量与URL值进行比较,会话变量我正在获取允许用户使用的页面ID。
我正在尝试此代码,但没有成功
if (isset($_SESSION['pageID']) && isset($_GET['page'])) {
if ($_SESSION['pageID'] == (int)$_GET['page']){
// Proceeding code
}
else {
// return fail
}
}
任何帮助都会受到赞赏,因为我花了几个小时研究这个。 提前谢谢!
答案 0 :(得分:1)
您应该将角色存储在数据库中,而不是存储在会话中。在角色表中,您可以存储用户的权限。例如,您可以说这种用户应该访问此页面ID。在用户想要访问您的页面时创建此项后,您应该向表发送查询以了解该用户是否可以访问此特定页面。
伪代码示例:
$available_pages_for_user = select * from table_roles where user_id = $_SESSION['user_id'] if $_GET['page'] in $available_pages_for_user //Proceed else //401 error or smt..
答案 1 :(得分:1)
if (isset($_SESSION['pageID']) && isset($_GET['page'])) {
$s = $_SESSION['pageID']; //check what is coming
$p = $_GET['page'];
if ($s == $p){
// Proceeding code
}
else {
// return fail
}
}