php 检索会话变量以限制对页面的访问

php retrieve session variable to restrict access to a page

我正在做一个库存管理网站,目前唯一的问题是页面限制,因此普通用户无法访问敏感的管理数据。

我做了这个测试代码:

    <?php 

    $perm = $_SESSION["perm_level"];

    if ($perm == 0) {
        $test = "Employee";
    } elseif ($perm == 1) {
        $test = "Manager";
    } elseif ($perm == 2) {
        $test = "Teacher";
    } else {
        $test = "No value retrieved from session.";
    }

    ?>

结果打印到 admin.php 页面,因此我只得到 Employee 而没有 $perm,即使 $perm 和 $test 都被回显了。如何将会话变量正确分配给变量 $perm?

我想我已经解决了。会话于 header.php 开始,因此 header.php 需要包含在烫发检查器中。

整体思路应该是这样的

用户来到并登录 然后您必须使用

开始会话

session_start();

然后 $_SESSION["perm_level"] 必须为此设置值。如果它在数据库中,您可以关联用户名以找出 pem_level

$_SESSION["perm_level"] = 'Value we get from DB';

只有在 $_SESSION["perm_level"] 中存在值后,您才能执行问题中提到的 if else 语句。

您可以查看带有会话的简单登录示例以了解其工作原理。

https://www.w3tweaks.com/php/simple-php-login-and-logout-script-using-php-session-and-database-using-mysql.html