以下是一个简单的PHP实例,用于展示如何实现分级授权。我们将通过一个假设的在线书店系统来演示如何根据用户的角色分配不同的访问权限。
用户角色与权限列表
| 用户角色 | 允许访问的页面 | 允许执行的操作 |
|---|---|---|
| 用户 | 首页、图书列表 | 查看图书信息 |
| 编辑 | 首页、图书列表、图书管理页 | 查看图书信息、添加/编辑图书 |
| 管理员 | 首页、图书列表、图书管理页、用户管理页 | 查看图书信息、添加/编辑图书、管理用户 |
PHP代码实例
```php

session_start();
// 模拟数据库用户数据
$users = [
'user1' => ['password' => 'user1pass', 'role' => '用户'],
'editor1' => ['password' => 'editor1pass', 'role' => '编辑'],
'admin1' => ['password' => 'admin1pass', 'role' => '管理员']
];
// 检查用户登录
function checkLogin($username, $password) {
global $users;
return isset($users[$username]) && $users[$username]['password'] == $password;
}
// 获取用户角色
function getRole($username) {
global $users;
return $users[$username]['role'];
}
// 检查用户是否有权限访问页面
function hasPermission($role, $page) {
$permissions = [
'用户' => ['首页', '图书列表'],
'编辑' => ['首页', '图书列表', '图书管理页'],
'管理员' => ['首页', '图书列表', '图书管理页', '用户管理页']
];
return in_array($page, $permissions[$role]);
}
// 模拟用户登录
$username = 'editor1';
$password = 'editor1pass';
if (checkLogin($username, $password)) {
$role = getRole($username);
if (hasPermission($role, '图书管理页')) {
echo "









