【发布时间】:2014-01-16 13:53:56
【问题描述】:
好的,我已经建立了一个基本的会员系统,我的数据库中有组(成员、管理员和版主)。 这些组有 3 个字段,ID、名称和权限。成员我将权限留空,管理员有 {"admin": 1 "moderator": 1} 和 moderator 有 {"moderator": 1}。
我在文件夹classes 中的user.php 文件中有一个简单的函数
功能
class User {
public function hasPermission($key) {
$group = $this->_db->query("SELECT * FROM groups WHERE id = ?", array($this->data()->group));
if($group->count()) {
$permissions = json_decode($group->first()->permissions, true);
if($permissions[$key] === 1) {
return true;
}
}
return false;
}
}
然后在admin.php 文件中,我有一段简单的代码,如果登录的用户是管理员,则应该显示回显
ps:我需要 init.php 文件,其中包含我的 classes/User.php 文件,因此我不需要调用多个文件。
代码
<?php
}
if($user->hasPermission('admin')) {
echo '<p>You are a admin!</p>';
} else {
echo 'You need to <a href="login.php">log in</a> or <a href="register.php">register</a>!';
}
?>
当管理员登录时,应该显示回显,不幸的是我只是得到一个空白页。
问题
所以我的问题是任何人都知道为什么这不起作用,因为我有一个管理员权限集用户登录并且在admin.php 上什么也没得到?
分组表
用户表
好的,由于某种原因,您需要登录或注册! echo 显示它无法识别管理员何时登录。
我要做的就是允许不同的组访问不同的页面
【问题讨论】:
-
我们需要查看正在构建的代码
$user -
我在
else之前看到了一个不需要的} -
好的,我将修改额外的 } 并将 $user 代码添加到答案中。
标签: php mysql permissions membership