2011-09-20 135 views
-1

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

我想添加一个用户级别的功能,其中它限制了可以由注册用户根据他的访问级别查看的页面。示例用户级别1只能访问第1-5页,而用户级别2可以访问第1-10页等等。

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

什么特定的功能/代码可以用来设置页面上的用户级别限制?

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

请帮助

回答

1

你没有给我太多有关发生了什么的信息(也许这就是为什么你的用户名是PHPNewbie)。

已经与我的老用户系统做的是我有一个单独的表称为。在组表中,它具有列中不同特权的布尔值(例如canComment)。无论何时我需要验证用户是否可以执行某个操作,我只需在操作列中检查一个真实值。

您可以通过拥有更广泛的用户系统来实现此目的,其中整数userLevel可以指示用户的组(0-根,1-基本等)。看起来你想要的是一个页面限制系统。我可以建议你使用检索的UserLevel作为这样一个switch语句 -

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; 
0

你可以做一个函数getUserLevel(用户ID)返回用户的数据库lavel,并检查你想要的页面那个水平(如果(getUserLevel($ _ SESSION [“USER_ID” ])< 5){display something} else {display something else})etc ...

+0

你可以给我一个具体的例子吗? :-) – PHPNewbie

+0

这是微不足道的。就像这样:'function getUserLevel($ user_id) { \t $ result = mysql_query('SELECT user_level FROM table WHERE id =“{$ user_id}”'); \t如果($结果){ \t \t而($行= mysql_fetch_assoc($结果)){ \t \t返回$行[ 'user_level']; \t} \t return null; }' – radonys

0

你在说什么被称为一个访问控制列表(ACL)和是已经发明了许多次轮。

在互联网上有几个教程可用,例如这个http://dev.juokaz.com/php/acl-made-easy-part-1。快速搜索将找到您可能更喜欢的其他人。

预制的解决方案可能适合您的需求,我发现这一个http://pear.php.net/package/LiveUser/redirected,再次有其他人可用。

你想要避免的是访问控制在你的代码周围,保持良好的实践并保持封装,以便你可以在一个地方进行更改。