当前位置:首页 > PHP

php商品评论怎么实现

2026-02-14 05:00:23PHP

实现PHP商品评论功能

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

数据库设计

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

php商品评论怎么实现

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商品评论怎么实现

<?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>';
    }
}
?>

评论管理功能

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

// 获取所有评论
$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 实现自动收货功能 自动收货功能通常用于电商系统,在订单超过一定时间未手动确认收货时自动完成订单。以下是实现方法: 数据库设计 需要订单表包含以下关键字段: CREATE TABLE o…

php实现上传

php实现上传

PHP 文件上传实现 HTML 表单设置 创建一个包含文件上传字段的 HTML 表单,确保表单的 enctype 属性设置为 multipart/form-data,这是文件上传必需的设置。 &l…

php实现注册

php实现注册

注册功能实现步骤 数据库准备 创建用户表,包含字段如id、username、password、email等。示例SQL: CREATE TABLE users ( id INT AUTO_…

php实现登陆

php实现登陆

PHP 实现登录功能 创建登录表单 在 HTML 文件中创建一个登录表单,包含用户名和密码输入框,表单的 action 属性指向处理登录的 PHP 文件。 <form action="logi…

php 实现mvc

php 实现mvc

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

php数组实现

php数组实现

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