【问题标题】:What am I doing wrong with this session code?这个会话代码我做错了什么?
【发布时间】:2015-04-15 13:26:45
【问题描述】:

我试图使页面无法访问,除非用户具有特定的权限级别并且是系统用户。

我在下面提供了我的代码。

<?php
session_start();

        include 'login/config.php';

        if($_SESSION['username']=='user' && $_SESSION['permissionlevel']!='one');{
            echo "<script>you dont have permission to access this page</script>";
            header:("location:dashboard.php");
        }



?>

我的代码哪里出错了?

编辑:

在 Neelesh 的帮助下修改了代码,但仍然无法正常工作。

【问题讨论】:

  • 在会话中存储用户的权限级别,检查权限级别是否可以访问页面,完成!
  • 我很感激,但我已经问过如何做到这一点,我需要什么代码来实现这一点。我知道我必须做什么,并且已经解释了这一点,我只是不知道如何到达那里。
  • 我不是来为你写代码的。我只是告诉你怎么做。因为你已经知道如何在会话中存储一些东西并在 if 中进行比较,就像你只需要?

标签: php mysql permissions


【解决方案1】:

我认为您搜索的是 ACL 实现或它的工作原理。 Zend 框架对此有很好的实现。看这里:http://framework.zend.com/manual/current/en/modules/zend.permissions.acl.intro.html 它是如何工作的。

问候

【讨论】:

  • 谢谢,我将研究 ACL 实现,并希望能够从中创建一些东西,从而允许我的用户具有特定的访问权限。感谢您的帮助。
【解决方案2】:

如果假设您有管理员和用户等用户角色

权限级别一、二、三

基于此用户角色和权限级别,如果您在登录时将其转换为会话,您可以检查该页面

if($_SESSION['USERROLE']=='USER' && $_SESSION['PERMISSIONLEVEL']!='THREE')
{
echo "<script>you dont have permission to access this page</script>";
header:("location:index.php")
}

通过这个简单的检查,如果没有将他重定向到带有警报消息的主页,您可以访问特定页面

【讨论】:

  • 我现在试一试,我可以问一下!应该在第二个会话字符串上出现吗?
  • 这是您的愿望,根据您的要求,您也可以将其更改为 == 运算符...
  • 啊,我明白了,谢谢你的快速反应,我现在就试一试!
猜你喜欢
  • 2015-02-25
  • 1970-01-01
  • 1970-01-01
  • 2015-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-28
  • 1970-01-01
相关资源
最近更新 更多