php实现审核
PHP 实现审核功能的方法
审核功能通常涉及用户提交内容的验证、管理员审核及状态更新。以下是实现审核功能的几种方法:
数据库设计 创建包含审核状态的表,例如:
CREATE TABLE posts (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255),
content TEXT,
status ENUM('pending', 'approved', 'rejected') DEFAULT 'pending',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
提交内容
用户提交内容时,默认状态设为pending:
$stmt = $pdo->prepare("INSERT INTO posts (title, content, status) VALUES (?, ?, 'pending')");
$stmt->execute([$title, $content]);
审核列表 管理员查看待审核内容:

$stmt = $pdo->query("SELECT * FROM posts WHERE status = 'pending'");
$pendingPosts = $stmt->fetchAll(PDO::FETCH_ASSOC);
审核操作 管理员批准或拒绝内容:
$stmt = $pdo->prepare("UPDATE posts SET status = ? WHERE id = ?");
$stmt->execute([$status, $postId]);
高级审核功能实现
审核日志 记录审核操作:
CREATE TABLE audit_logs (
id INT AUTO_INCREMENT PRIMARY KEY,
post_id INT,
action VARCHAR(50),
admin_id INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
$stmt = $pdo->prepare("INSERT INTO audit_logs (post_id, action, admin_id) VALUES (?, ?, ?)");
$stmt->execute([$postId, $action, $adminId]);
邮件通知 审核完成后通知用户:

mail($userEmail, "Your post has been $status", "Your post titled '$title' has been $status.");
权限控制 确保只有管理员可以审核:
if ($_SESSION['role'] !== 'admin') {
header("HTTP/1.1 403 Forbidden");
exit;
}
前端界面示例
待审核列表
<table>
<tr>
<th>Title</th>
<th>Actions</th>
</tr>
<?php foreach ($pendingPosts as $post): ?>
<tr>
<td><?= htmlspecialchars($post['title']) ?></td>
<td>
<a href="approve.php?id=<?= $post['id'] ?>">Approve</a>
<a href="reject.php?id=<?= $post['id'] ?>">Reject</a>
</td>
</tr>
<?php endforeach ?>
</table>
审核表单
<form action="review.php" method="post">
<input type="hidden" name="post_id" value="<?= $postId ?>">
<textarea name="comment" placeholder="Rejection reason (if applicable)"></textarea>
<button type="submit" name="action" value="approve">Approve</button>
<button type="submit" name="action" value="reject">Reject</button>
</form>






