从管理员表与用户表中实现不同页面
时间: 2023-08-05 18:07:44 浏览: 77
要从管理员表与用户表中实现不同页面,可以先创建两个表,一个是管理员表,一个是用户表。在登录时,根据用户的角色(管理员或普通用户)验证用户信息,并将用户信息保存到 session 中。然后在不同的页面中,根据用户的角色来判断是否有权限访问该页面。
下面是一个简单的示例代码,假设管理员表名为 `admin_table`,用户表名为 `user_table`:
```php
<?php
session_start();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = $_POST['username'];
$password = $_POST['password'];
$role = $_POST['role'];
// 验证用户信息
if (check_user($username, $password, $role)) {
// 保存用户信息到 session 中
$_SESSION['username'] = $username;
$_SESSION['role'] = $role;
// 根据用户角色重定向到不同的页面
if ($role == 'admin') {
header('Location: admin.php');
exit;
} else {
header('Location: user.php');
exit;
}
} else {
echo '用户名或密码错误';
}
}
function check_user($username, $password, $role) {
// 查询用户信息
$conn = mysqli_connect('localhost', 'root', 'password', 'mydb');
if (!$conn) {
die('连接数据库失败:' . mysqli_connect_error());
}
$table = $role == 'admin' ? 'admin_table' : 'user_table';
$sql = "SELECT * FROM $table WHERE username='$username' AND password='$password'";
$result = mysqli_query($conn, $sql);
mysqli_close($conn);
if (mysqli_num_rows($result) == 1) {
return true;
}
return false;
}
?>
<!DOCTYPE html>
<html>
<head>
<title>登录页面</title>
</head>
<body>
<form method="post" action="">
<label>用户名:</label><input type="text" name="username" /><br />
<label>密码:</label><input type="password" name="password" /><br />
<label>角色:</label>
<select name="role">
<option value="admin">管理员</option>
<option value="user">普通用户</option>
</select><br />
<input type="submit" value="登录" />
</form>
</body>
</html>
```
在上面的代码中,我们使用了 mysqli 扩展来连接数据库,并根据用户的角色来选择不同的表进行查询。在查询完成后,我们还使用了 `mysqli_num_rows` 函数来判断查询结果是否有且只有一条记录。
在管理员页面(`admin.php`)中,我们可以根据用户的角色来判断是否有权限访问该页面:
```php
<?php
session_start();
if (!isset($_SESSION['username']) || $_SESSION['role'] != 'admin') {
header('Location: login.php');
exit;
}
?>
<!DOCTYPE html>
<html>
<head>
<title>管理员页面</title>
</head>
<body>
<h1>欢迎您,管理员 <?php echo $_SESSION['username']; ?></h1>
<p>这是管理员页面,只有管理员可以访问。</p>
</body>
</html>
```
在普通用户页面(`user.php`)中,同样可以根据用户的角色来判断是否有权限访问该页面:
```php
<?php
session_start();
if (!isset($_SESSION['username']) || $_SESSION['role'] != 'user') {
header('Location: login.php');
exit;
}
?>
<!DOCTYPE html>
<html>
<head>
<title>普通用户页面</title>
</head>
<body>
<h1>欢迎您,<?php echo $_SESSION['username']; ?></h1>
<p>这是普通用户页面,只有普通用户可以访问。</p>
</body>
</html>
```
在上面的代码中,我们使用了 `isset` 函数来判断 session 中是否保存了用户信息,并且判断用户角色是否为管理员或普通用户。如果没有保存用户信息或用户角色不正确,就重定向到登录页面。