插件窝 干货文章 PHP开发点餐系统在线客户反馈功能完整指南

PHP开发点餐系统在线客户反馈功能完整指南

PHP开发点餐系统在线客户反馈功能完整指南

一、系统需求分析

在开发点餐系统的客户反馈功能前,需要明确以下核心需求:

  • 用户可提交反馈表单
  • 支持文字评价和星级评分
  • 后台管理查看反馈
  • 数据安全防护

二、数据库设计

CREATE TABLE `feedback` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `order_id` varchar(20) DEFAULT NULL,
  `user_id` int(11) DEFAULT NULL,
  `rating` tinyint(1) DEFAULT 5,
  `content` text DEFAULT NULL,
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
  `status` tinyint(1) DEFAULT 0 COMMENT '0未处理1已处理',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

三、前端反馈表单开发

使用Bootstrap构建响应式表单:

<form action="submit_feedback.php" method="post" id="feedbackForm">
    <div class="form-group">
        <label>订单号</label>
        <input type="text" class="form-control" name="order_id" required>
    </div>
    <div class="form-group">
        <label>评分</label>
        <div class="star-rating">
            <!-- 星级评分代码 -->
        </div>
    </div>
    <div class="form-group">
        <label>反馈内容</label>
        <textarea class="form-control" name="content" rows="5" required></textarea>
    </div>
    <button type="submit" class="btn btn-primary">提交反馈</button>
</form>

四、PHP后端处理

创建submit_feedback.php处理表单提交:

<?php
// 连接数据库
$db = new PDO('mysql:host=localhost;dbname=restaurant', 'username', 'password');

// 获取并过滤输入
$order_id = filter_input(INPUT_POST, 'order_id', FILTER_SANITIZE_STRING);
$rating = filter_input(INPUT_POST, 'rating', FILTER_SANITIZE_NUMBER_INT);
$content = filter_input(INPUT_POST, 'content', FILTER_SANITIZE_STRING);

// 验证数据
if(empty($order_id) || $rating < 1 || $rating > 5) {
    die('无效的输入数据');
}

// 准备SQL语句
$stmt = $db->prepare("INSERT INTO feedback (order_id, rating, content) VALUES (?, ?, ?)");

// 执行插入
if($stmt->execute([$order_id, $rating, $content])) {
    echo '反馈提交成功!';
} else {
    echo '提交失败,请稍后再试';
}
?>

五、后台管理功能

开发管理员查看界面:

<?php
// 获取反馈列表
$stmt = $db->query("SELECT * FROM feedback ORDER BY create_time DESC");
$feedbacks = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 显示表格
foreach($feedbacks as $fb) {
    echo "<tr>";
    echo "<td>{$fb['order_id']}</td>";
    echo "<td>{$fb['rating']}星</td>";
    echo "<td>{$fb['content']}</td>";
    echo "<td>{$fb['create_time']}</td>";
    echo "</tr>";
}
?>

六、安全增强措施

  • 使用预处理语句防止SQL注入
  • 实现CSRF防护令牌
  • 对输出内容进行HTML转义
  • 限制IP提交频率

七、SEO优化建议

为提升页面收录效果:

  1. 在反馈页面添加结构化数据
  2. 生成独立的反馈成功页面
  3. 使用语义化的HTML标签
  4. 确保移动端友好体验