当前位置:首页 > PHP

php实现评论回复

2026-02-15 13:10:52PHP

PHP实现评论回复功能

数据库设计

创建一个包含评论和回复的表结构,通常需要以下字段:

  • id: 主键
  • content: 评论内容
  • parent_id: 父评论ID(0表示顶级评论)
  • user_id: 用户ID
  • created_at: 创建时间
CREATE TABLE comments (
    id INT AUTO_INCREMENT PRIMARY KEY,
    content TEXT NOT NULL,
    parent_id INT DEFAULT 0,
    user_id INT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

添加评论功能

通过表单提交评论内容,PHP处理并存入数据库:

// 处理评论提交
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['content'])) {
    $content = htmlspecialchars($_POST['content']);
    $parentId = isset($_POST['parent_id']) ? (int)$_POST['parent_id'] : 0;

    // 假设已连接数据库
    $stmt = $pdo->prepare("INSERT INTO comments (content, parent_id, user_id) VALUES (?, ?, ?)");
    $stmt->execute([$content, $parentId, $_SESSION['user_id']]);
}

显示评论及回复

递归方式获取评论层级结构:

function getComments($parentId = 0) {
    global $pdo;
    $stmt = $pdo->prepare("SELECT * FROM comments WHERE parent_id = ? ORDER BY created_at DESC");
    $stmt->execute([$parentId]);
    $comments = $stmt->fetchAll(PDO::FETCH_ASSOC);

    foreach ($comments as &$comment) {
        $comment['replies'] = getComments($comment['id']);
    }

    return $comments;
}

// 显示评论
$comments = getComments();
foreach ($comments as $comment) {
    echo '<div class="comment">';
    echo '<p>' . $comment['content'] . '</p>';
    echo '<a href="?reply_to=' . $comment['id'] . '">回复</a>';

    // 显示回复
    if (!empty($comment['replies'])) {
        echo '<div class="replies">';
        foreach ($comment['replies'] as $reply) {
            echo '<div class="reply">';
            echo '<p>' . $reply['content'] . '</p>';
            echo '</div>';
        }
        echo '</div>';
    }
    echo '</div>';
}

回复功能实现

在评论下方添加回复表单:

php实现评论回复

if (isset($_GET['reply_to'])) {
    echo '<form method="POST" action="">
        <input type="hidden" name="parent_id" value="' . (int)$_GET['reply_to'] . '">
        <textarea name="content" placeholder="写下你的回复..."></textarea>
        <button type="submit">提交回复</button>
    </form>';
}

安全注意事项

  1. 对所有用户输入使用htmlspecialchars()过滤
  2. 使用预处理语句防止SQL注入
  3. 验证用户权限,确保只有登录用户才能评论
  4. 对频繁操作实施限流措施

标签: php
分享给朋友:

相关文章

php实现

php实现

PHP 实现的基本方法 PHP 是一种服务器端脚本语言,广泛用于 Web 开发。以下是 PHP 实现的一些常见方法。 变量与数据类型 PHP 变量以 $ 开头,支持多种数据类型: $nam…

php实现的分页

php实现的分页

PHP 实现分页的方法 基本分页逻辑 分页的核心在于计算总页数、当前页码以及数据偏移量。假设每页显示 10 条数据: $current_page = isset($_GET['page']) ? (…

php实现mvc

php实现mvc

PHP 实现 MVC 架构 MVC(Model-View-Controller)是一种常用的软件设计模式,将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller…

php数组实现

php数组实现

PHP 数组的基本实现 PHP 数组是一种非常灵活的数据结构,可以存储多个值,并且支持多种类型的键(整数或字符串)。PHP 数组实际上是有序映射(ordered map),可以看作是列表(vector…

php 实现跳转

php 实现跳转

PHP 实现页面跳转的方法 在PHP中,实现页面跳转可以通过多种方式完成,以下是几种常用的方法: 使用header函数 header函数是PHP中最常用的跳转方法,通过发送HTTP头部信息实现跳转。…

php实现伪静态

php实现伪静态

PHP 实现伪静态的方法 伪静态(URL Rewrite)是一种将动态URL转换为看似静态URL的技术,提升SEO友好性和用户体验。以下是几种常见的实现方式: 使用 Apache 的 mod_rew…