我已经有一个使用php和mysql使用会话的现有登录系统。我想我不需要在这里发布代码。
我想为其添加用户级功能,其中它限制注册用户可以根据其访问级别查看的页面。示例用户级别1只能访问1-5页,用户级别2可以访问1-10页,依此类推。
我在我的成员表上添加了一个userlevel列。我不知道下一步是什么。
可以使用哪些特定的函数/代码来设置页面上的用户级别限制?
我试图在网上搜索一些例子,但找不到任何好的例子。
请帮助
答案 0 :(得分:1)
您没有向我提供有关正在发生的事情的更多信息(也许这就是您的用户名是PHPNewbie的原因)。
我用以前的用户系统做过所做的事情是我有一个名为 groups 的单独表。在groups表中,它在列中具有不同权限的布尔值(例如 canComment )。每当我需要验证用户是否可以执行某个操作时,我只是在操作列中检查了一个真值。
您可以通过拥有更广泛的用户系统来实现这一点,其中整数 userLevel 可以指示用户的组(0 - root,1 - basic等)。你想要的是一个页面限制系统。我建议你使用一个switch语句来检索 userLevel ,因为 -
switch(userLevel) { //Where userLevel is an int retrieved from the session/database
case 0:
echo $page;
break;
case 1:
echo "You cannot access this resource...";
break;
答案 1 :(得分:0)
你可以创建一个函数 getUserLevel(userId),它返回用户的数据库层次,并检查你想要的页面上的那个级别(if(getUserLevel($ _ SESSION ['user_id']) < 5){display something} else {display something else})etc ...
答案 2 :(得分:0)
您所谈论的内容称为访问控制列表(ACL),是一种多次发明的轮子。
互联网上有几个教程,例如http://dev.juokaz.com/php/acl-made-easy-part-1。快速搜索会找到您可能更喜欢的其他内容。
预先制作的解决方案可能符合您的需求,我发现了这个http://pear.php.net/package/LiveUser/redirected,还有其他可用的解决方案。
您要避免的是在代码周围添加访问控制,保持良好实践并将其封装起来,以便您可以在一个地方进行更改。
答案 3 :(得分:0)
以下是有关如何构建组级用户权限的详尽说明: