我已经有一个使用php和mysql使用会话的现有登录系统。我想我不需要在这里发布代码。不同用户级别的php mysql登录系统
我想添加一个用户级别的功能,其中它限制了可以由注册用户根据他的访问级别查看的页面。示例用户级别1只能访问第1-5页,而用户级别2可以访问第1-10页等等。
我在我的成员表上添加了一个userlevel列。我不知道下一步是什么。
什么特定的功能/代码可以用来设置页面上的用户级别限制?
我试着在网上搜索例子,但找不到任何好的例子。
请帮助
我已经有一个使用php和mysql使用会话的现有登录系统。我想我不需要在这里发布代码。不同用户级别的php mysql登录系统
我想添加一个用户级别的功能,其中它限制了可以由注册用户根据他的访问级别查看的页面。示例用户级别1只能访问第1-5页,而用户级别2可以访问第1-10页等等。
我在我的成员表上添加了一个userlevel列。我不知道下一步是什么。
什么特定的功能/代码可以用来设置页面上的用户级别限制?
我试着在网上搜索例子,但找不到任何好的例子。
请帮助
你没有给我太多有关发生了什么的信息(也许这就是为什么你的用户名是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;
你可以做一个函数getUserLevel(用户ID)返回用户的数据库lavel,并检查你想要的页面那个水平(如果(getUserLevel($ _ SESSION [“USER_ID” ])< 5){display something} else {display something else})etc ...
你在说什么被称为一个访问控制列表(ACL)和是已经发明了许多次轮。
在互联网上有几个教程可用,例如这个http://dev.juokaz.com/php/acl-made-easy-part-1。快速搜索将找到您可能更喜欢的其他人。
预制的解决方案可能适合您的需求,我发现这一个http://pear.php.net/package/LiveUser/redirected,再次有其他人可用。
你想要避免的是访问控制在你的代码周围,保持良好的实践并保持封装,以便你可以在一个地方进行更改。
下面是如何建立组级用户权限进行彻底的解释:
你可以给我一个具体的例子吗? :-) – PHPNewbie
这是微不足道的。就像这样:'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