php实现审核系统
实现审核系统的基本架构
审核系统通常包含用户提交内容、管理员审核、状态管理等功能模块。PHP作为后端语言可结合MySQL数据库实现完整流程。
数据库设计
核心表结构设计如下:
CREATE TABLE `submissions` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`content` text NOT NULL,
`status` enum('pending','approved','rejected') DEFAULT 'pending',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`reviewed_at` timestamp NULL DEFAULT NULL,
`admin_comment` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`role` enum('user','admin') DEFAULT 'user',
PRIMARY KEY (`id`)
);
提交内容处理
用户提交内容时插入待审记录:
function submitContent($userId, $content) {
$stmt = $pdo->prepare("INSERT INTO submissions (user_id, content) VALUES (?, ?)");
$stmt->execute([$userId, $content]);
return $pdo->lastInsertId();
}
审核后台实现
管理员界面列出待审内容:
function getPendingSubmissions() {
return $pdo->query("SELECT * FROM submissions WHERE status = 'pending'")->fetchAll();
}
审核操作处理函数:
function reviewSubmission($submissionId, $status, $adminComment = null) {
$stmt = $pdo->prepare("UPDATE submissions SET status = ?, reviewed_at = NOW(), admin_comment = ? WHERE id = ?");
$stmt->execute([$status, $adminComment, $submissionId]);
}
状态查询接口
用户查看自己内容的审核状态:
function getUserSubmissions($userId) {
$stmt = $pdo->prepare("SELECT * FROM submissions WHERE user_id = ? ORDER BY created_at DESC");
$stmt->execute([$userId]);
return $stmt->fetchAll();
}
权限控制
使用中间件验证用户角色:
function isAdmin($userId) {
$stmt = $pdo->prepare("SELECT role FROM users WHERE id = ?");
$stmt->execute([$userId]);
$user = $stmt->fetch();
return $user['role'] === 'admin';
}
邮件通知功能
审核完成后发送通知:
function sendReviewNotification($submissionId) {
$submission = $pdo->query("SELECT u.email, s.status FROM submissions s JOIN users u ON s.user_id = u.id WHERE s.id = $submissionId")->fetch();
$to = $submission['email'];
$subject = "内容审核结果通知";
$message = "您的提交内容状态已更新为:".$submission['status'];
mail($to, $subject, $message);
}
安全注意事项
- 所有数据库操作使用预处理语句防止SQL注入
- 敏感操作需验证CSRF token
- 文件上传需检查MIME类型和扩展名
- 管理员界面应限制IP访问或使用二次验证
扩展功能建议
- 添加审核日志记录表追踪操作历史
- 实现多级审核流程
- 集成内容敏感词过滤系统
- 开发REST API供移动端调用
- 添加批量审核操作功能







