用php写一个程序授权系统要求实现域名授权带后台功能用户管理
以下是一个示例程序授权系统的代码,使用PHP编写,实现了域名授权和后台用户管理功能。请注意,这只是一个示例程序,您需要根据自己的需求进行修改和优化。
-
首先,创建一个数据库,用于存储授权信息和用户信息。
-
创建一个授权表,包括以下字段:id、domain、expire_date、created_date。
-
创建一个用户表,包括以下字段:id、username、password、role。
-
创建一个PHP文件,用于处理授权验证和用户认证。
<?php
session_start(); // 开启session
// 数据库连接信息
$host = 'localhost';
$user = 'root';
$password = 'your_password';
$dbname = 'your_database';
// 连接数据库
$conn = mysqli_connect($host, $user, $password, $dbname);
// 检查连接是否成功
if (!$conn) {
die('连接失败:' . mysqli_connect_error());
}
// 授权验证函数
function authorize($domain) {
global $conn;
$query = "SELECT * FROM authorize WHERE domain='$domain'";
$result = mysqli_query($conn, $query);
if (mysqli_num_rows($result) > 0) {
$row = mysqli_fetch_assoc($result);
$expire_date = strtotime($row['expire_date']);
if ($expire_date >= time()) {
return true;
} else {
return false;
}
} else {
return false;
}
}
// 用户认证函数
function authenticate($username, $password) {
global $conn;
$query = "SELECT * FROM users WHERE username='$username'";
$result = mysqli_query($conn, $query);
if (mysqli_num_rows($result) > 0) {
$row = mysqli_fetch_assoc($result);
if (password_verify($password, $row['password'])) {
$_SESSION['username'] = $username;
$_SESSION['role'] = $row['role'];
return true;
} else {
return false;
}
} else {
return false;
}
}
?>
- 创建一个PHP文件,用于处理后台用户管理。
<?php
require_once 'auth.php'; // 引入授权验证和用户认证的PHP文件
// 检查用户是否登录
if (!isset($_SESSION['username'])) {
header('Location: login.php');
exit();
}
// 检查用户是否有管理员权限
if ($_SESSION['role'] != 'admin') {
header('Location: index.php');
exit();
}
// 处理表单提交
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// 添加用户
if (isset($_POST['add_user'])) {
$username = $_POST['username'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$role = $_POST['role'];
$query = "INSERT INTO users (username, password, role) VALUES ('$username', '$password', '$role')";
mysqli_query($conn, $query);
}
// 删除用户
if (isset($_POST['delete_user'])) {
$id = $_POST['id'];
$query = "DELETE FROM users WHERE id=$id";
mysqli_query($conn, $query);
}
}
// 查询用户列表
$query = "SELECT * FROM users";
$result = mysqli_query($conn, $query);
$users = mysqli_fetch_all($result, MYSQLI_ASSOC);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>后台用户管理</title>
</head>
<body>
<h1>后台用户管理</h1>
<table>
<tr>
<th>ID</th>
<th>用户名</th>
<th>角色</th>
<th>操作</th>
</tr>
<?php foreach ($users as $user) : ?>
<tr>
<td><?php echo $user['id']; ?></td>
<td><?php echo $user['username']; ?></td>
<td><?php echo $user['role']; ?></td>
<td>
<form method="post">
<input type="hidden" name="id" value="<?php echo $user['id']; ?>">
<button type="submit" name="delete_user">删除</button>
</form>
</td>
</tr>
<?php endforeach; ?>
</table>
<h2>添加用户</h2>
<form method="post">
<label>用户名:</label><input type="text" name="username"><br>
<label>密码:</label><input type="password" name="password"><br>
<label>角色:</label>
<select name="role">
<option value="user">普通用户</option>
<option value="admin">管理员</option>
</select><br>
<button type="submit" name="add_user">添加</button>
</form>
<a href="index.php">返回首页</a>
</body>
</html>
- 创建一个PHP文件,用于处理登录和注销功能。
<?php
require_once 'auth.php'; // 引入授权验证和用户认证的PHP文件
// 处理登录
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = $_POST['username'];
$password = $_POST['password'];
if (authenticate($username, $password)) {
header('Location: index.php');
exit();
} else {
$error = '用户名或密码错误';
}
}
// 处理注销
if (isset($_GET['logout'])) {
session_destroy();
header('Location: login.php');
exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<h1>登录</h1>
<?php if (isset($error)) : ?>
<p><?php echo $error; ?></p>
<?php endif; ?>
<form method="post">
<label>用户名:</label><input type="text" name="username"><br>
<label>密码:</label><input type="password" name="password"><br>
<button type="submit">登录</button>
</form>
<a href="index.php">返回首页</a>
</body>
</html>
- 创建一个PHP文件,用于处理授权验证和显示授权信息。
<?php
require_once 'auth.php'; // 引入授权验证和用户认证的PHP文件
$domain = $_SERVER['HTTP_HOST']; // 获取当前域名
// 检查授权
if (!authorize($domain)) {
header('Location: unauthorized.php');
exit();
}
// 查询授权信息
$query = "SELECT * FROM authorize WHERE domain='$domain'";
$result = mysqli_query($conn, $query);
$row = mysqli_fetch_assoc($result);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>授权信息</title>
</head>
<body>
<h1>授权信息</h1>
<p>域名:<?php echo $row['domain']; ?></p>
<p>有效期:<?php echo $row['expire_date']; ?></p>
<a href="index.php">返回首页</a>
</body>
</html>
- 创建一个PHP文件,用于显示未授权的信息。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>未授权</title>
</head>
<body>
<h1>未授权</h1>
<p>您的域名未被授权访问该页面。</p>
<a href="index.php">返回首页</a>
</body>
</html>
- 创建一个PHP文件,用于显示首页和菜单。
<?php
require_once 'auth.php'; // 引入授权验证和用户认证的PHP文件
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body>
<h1>首页</h1>
<?php if (isset($_SESSION['username'])) : ?>
<p>欢迎您,<?php echo $_SESSION['username']; ?>!</p>
<ul>
<?php if ($_SESSION['role'] == 'admin') : ?>
<li><a href="admin.php">后台用户管理</a></li>
<?php endif; ?>
<li><a href="authorize.php">授权信息</a></li>
<li><a href="login.php?logout">注销</a></li>
</ul>
<?php else : ?>
<p>请先<a href="login.php">登录</a>。</p>
<?php endif; ?>
</body>
</html>
现在,您可以根据自己的需求进行修改和优化,以创建一个完整的程序授权系统
原文地址: http://www.cveoy.top/t/topic/fEd5 著作权归作者所有。请勿转载和采集!