繁体   English   中英

如何使用会话变量实现访问控制系统?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM