php mysql登录系统具有不同的用户级别

时间:2011-09-20 09:12:15

标签: php mysql login

我已经有一个使用php和mysql使用会话的现有登录系统。我想我不需要在这里发布代码。

我想为其添加用户级功能,其中它限制注册用户可以根据其访问级别查看的页面。示例用户级别1只能访问1-5页,用户级别2可以访问1-10页,依此类推。

我在我的成员表上添加了一个userlevel列。我不知道下一步是什么。

可以使用哪些特定的函数/代码来设置页面上的用户级别限制?

我试图在网上搜索一些例子,但找不到任何好的例子。

请帮助

4 个答案:

答案 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)

以下是有关如何构建组级用户权限的详尽说明:

Applying column permissions for a table over a trigger