【问题标题】:php retrieve session variable to restrict access to a page [duplicate]php检索会话变量以限制对页面的访问[重复]
【发布时间】:2019-02-25 17:03:52
【问题描述】:

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

我已经做了这个测试代码:

    <?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 页面中,因此即使 $perm 和 $test 都回显了,我也只会得到 Employee 而没有 $perm。如何将会话变量正确分配给变量 $perm?

【问题讨论】:

  • 您正确地分配了$perm,我很确定问题是没有设置$_SESSION['perm_level'],所以$permNULL,因此$perm == 0 测试总是返回true(因为NULL == 0)所以$test总是设置为“员工”
  • 你有session_start()...吗?!
  • 提示:如果由于某种原因打印出变量时没有显示任何内容,请使用 var_dump() php 函数打印变量内容,这将准确显示变量的类型及其值(如果有的话)。
  • JCoDog 是新用户。帮助他纠正而不是投反对票。

标签: php session-variables


【解决方案1】:

整体思路一定是这样的

用户来登录 然后你必须开始会话

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

【讨论】:

  • 谢谢,在您的帮助下,我解决了我遇到的问题。
【解决方案2】:

我想我解决了。会话在 header.php 中启动,因此 header.php 需要包含在 perm 检查器中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    相关资源
    最近更新 更多