php实现发布评论
数据库表设计
创建评论表comments,包含字段如id(主键)、content(评论内容)、user_id(用户ID)、created_at(发布时间)等:
CREATE TABLE comments (
id INT AUTO_INCREMENT PRIMARY KEY,
content TEXT NOT NULL,
user_id INT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id)
);
表单提交处理
前端HTML表单需包含评论输入框和提交按钮:
<form method="POST" action="submit_comment.php">
<textarea name="content" required></textarea>
<button type="submit">发布评论</button>
</form>
PHP处理逻辑
创建submit_comment.php文件处理表单提交:
<?php
// 连接数据库
$db = new PDO('mysql:host=localhost;dbname=your_db', 'username', 'password');
// 获取用户输入
$content = $_POST['content'];
$user_id = $_SESSION['user_id']; // 假设用户已登录
// 插入数据库
$stmt = $db->prepare("INSERT INTO comments (content, user_id) VALUES (?, ?)");
$stmt->execute([$content, $user_id]);
// 重定向回原页面
header("Location: index.php");
exit();
?>
显示评论列表
在页面中显示所有评论:
<?php
$stmt = $db->query("SELECT * FROM comments ORDER BY created_at DESC");
while ($comment = $stmt->fetch()) {
echo '<div class="comment">';
echo '<p>' . htmlspecialchars($comment['content']) . '</p>';
echo '<small>Posted at ' . $comment['created_at'] . '</small>';
echo '</div>';
}
?>
安全防护措施
对用户输入进行过滤和验证:
$content = filter_input(INPUT_POST, 'content', FILTER_SANITIZE_STRING);
if (empty($content)) {
die('评论内容不能为空');
}
用户身份验证
确保用户已登录才能发布评论:
session_start();
if (!isset($_SESSION['user_id'])) {
header("Location: login.php");
exit();
}






