当前位置:首页 > PHP

php商品评论怎么实现

2026-02-14 05:00:23PHP

实现PHP商品评论功能

商品评论功能通常包括评论提交、显示、管理等功能。以下是实现的基本步骤和代码示例。

数据库设计

创建评论表,包含评论ID、用户ID、商品ID、评论内容、评分、时间等字段。

CREATE TABLE `product_reviews` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `product_id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `content` text NOT NULL,
  `rating` tinyint(1) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `product_id` (`product_id`),
  KEY `user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

评论提交表单

在商品详情页添加评论表单,包含评分和评论内容输入框。

<form action="submit_review.php" method="post">
    <input type="hidden" name="product_id" value="<?php echo $product_id; ?>">
    <div class="rating">
        <input type="radio" id="star5" name="rating" value="5" />
        <label for="star5">5</label>
        <!-- 其他星级选项 -->
    </div>
    <textarea name="content" required></textarea>
    <button type="submit">提交评论</button>
</form>

处理评论提交

创建submit_review.php处理表单提交,验证数据并存入数据库。

<?php
session_start();
require 'db_connect.php';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $product_id = filter_input(INPUT_POST, 'product_id', FILTER_VALIDATE_INT);
    $user_id = $_SESSION['user_id'];
    $content = htmlspecialchars(trim($_POST['content']));
    $rating = filter_input(INPUT_POST, 'rating', FILTER_VALIDATE_INT, 
        ['options' => ['min_range' => 1, 'max_range' => 5]]);

    if ($product_id && $user_id && $content && $rating) {
        $stmt = $pdo->prepare("INSERT INTO product_reviews 
            (product_id, user_id, content, rating) VALUES (?, ?, ?, ?)");
        $stmt->execute([$product_id, $user_id, $content, $rating]);

        header("Location: product.php?id=$product_id");
        exit;
    } else {
        die('无效的输入数据');
    }
}
?>

显示评论列表

在商品页面查询并显示该商品的所有评论。

<?php
$product_id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
if ($product_id) {
    $stmt = $pdo->prepare("SELECT r.*, u.username 
        FROM product_reviews r 
        JOIN users u ON r.user_id = u.id 
        WHERE r.product_id = ? 
        ORDER BY r.created_at DESC");
    $stmt->execute([$product_id]);
    $reviews = $stmt->fetchAll();

    foreach ($reviews as $review) {
        echo '<div class="review">';
        echo '<h4>' . htmlspecialchars($review['username']) . '</h4>';
        echo '<div class="rating">' . str_repeat('★', $review['rating']) . '</div>';
        echo '<p>' . nl2br(htmlspecialchars($review['content'])) . '</p>';
        echo '<small>' . $review['created_at'] . '</small>';
        echo '</div>';
    }
}
?>

评论管理功能

管理员后台可以查看和删除评论。

php商品评论怎么实现

// 获取所有评论
$stmt = $pdo->query("SELECT r.*, u.username, p.name as product_name 
    FROM product_reviews r 
    JOIN users u ON r.user_id = u.id 
    JOIN products p ON r.product_id = p.id 
    ORDER BY r.created_at DESC");
$all_reviews = $stmt->fetchAll();

// 删除评论
if (isset($_GET['delete'])) {
    $delete_id = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_INT);
    if ($delete_id) {
        $stmt = $pdo->prepare("DELETE FROM product_reviews WHERE id = ?");
        $stmt->execute([$delete_id]);
        header("Location: admin_reviews.php");
        exit;
    }
}

安全注意事项

  1. 使用预处理语句防止SQL注入
  2. 对输出内容使用htmlspecialchars()防止XSS攻击
  3. 验证用户权限,确保只有登录用户才能评论
  4. 对管理员操作进行权限验证
  5. 考虑添加评论字数限制和频率限制

扩展功能

  1. 添加评论回复功能
  2. 实现评论点赞功能
  3. 添加评论图片上传
  4. 实现评论筛选和排序
  5. 添加敏感词过滤机制

以上实现提供了商品评论系统的基本框架,可根据具体需求进行扩展和优化。

标签: 商品php
分享给朋友:

相关文章

php 实现秒杀

php 实现秒杀

PHP 实现秒杀的关键技术 秒杀系统需要解决高并发、超卖、性能瓶颈等问题。以下是实现秒杀的核心方案: 使用 Redis 预减库存 将商品库存提前加载到 Redis 中,通过原子操作保证库存准确性:…

php搜索功能实现的

php搜索功能实现的

PHP 搜索功能实现方法 数据库搜索实现 使用 SQL 的 LIKE 语句进行模糊匹配,适用于小型网站和简单搜索需求。 $searchTerm = $_GET['search']; $query =…

php 实现mvc

php 实现mvc

PHP 实现 MVC 架构的方法 MVC(Model-View-Controller)是一种常见的软件设计模式,用于分离业务逻辑、用户界面和用户输入。以下是 PHP 实现 MVC 架构的关键步骤:…

php session实现购物车

php session实现购物车

PHP Session 实现购物车 初始化 Session 确保在使用 Session 前调用 session_start() 函数。通常放在 PHP 文件的最顶部。 <?php sessio…

php实现评论功能

php实现评论功能

数据库设计 创建评论表(示例结构): CREATE TABLE `comments` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id`…

php 实现表单验证

php 实现表单验证

表单验证基础方法 使用内置函数和条件判断进行基础验证,例如检查空值、长度限制等: $name = $_POST['name'] ?? ''; $email = $_POST['email'] ??…