当前位置:首页 > PHP

php实现报修

2026-01-29 23:59:16PHP

PHP实现报修系统的方法

数据库设计 创建报修表(repair_orders)包含字段:id(主键)、user_id(用户ID)、title(标题)、content(报修内容)、status(状态)、create_time(创建时间)、update_time(更新时间)

CREATE TABLE `repair_orders` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `title` varchar(255) NOT NULL,
  `content` text NOT NULL,
  `status` tinyint(1) DEFAULT 0 COMMENT '0-待处理 1-处理中 2-已完成',
  `create_time` datetime NOT NULL,
  `update_time` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

提交报修表单 创建HTML表单页面(repair_form.php)包含标题、内容等输入项

<form action="submit_repair.php" method="post">
    <input type="text" name="title" placeholder="报修标题" required>
    <textarea name="content" placeholder="详细描述问题" required></textarea>
    <button type="submit">提交报修</button>
</form>

处理报修提交 创建处理脚本(submit_repair.php)接收表单数据并存入数据库

php实现报修

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

// 获取表单数据
$title = $_POST['title'];
$content = $_POST['content'];
$user_id = $_SESSION['user_id']; // 从会话获取用户ID
$create_time = date('Y-m-d H:i:s');

// 插入数据库
$stmt = $db->prepare("INSERT INTO repair_orders (user_id, title, content, status, create_time, update_time) 
                     VALUES (?, ?, ?, 0, ?, ?)");
$stmt->execute([$user_id, $title, $content, $create_time, $create_time]);

// 返回结果
header('Location: repair_list.php');
?>

报修列表展示 创建列表页面(repair_list.php)显示所有报修记录

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

// 查询数据
$stmt = $db->query("SELECT * FROM repair_orders ORDER BY create_time DESC");
$repairs = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>

<table>
    <tr>
        <th>标题</th>
        <th>内容</th>
        <th>状态</th>
        <th>创建时间</th>
    </tr>
    <?php foreach ($repairs as $repair): ?>
    <tr>
        <td><?= htmlspecialchars($repair['title']) ?></td>
        <td><?= htmlspecialchars($repair['content']) ?></td>
        <td><?= $repair['status'] == 0 ? '待处理' : ($repair['status'] == 1 ? '处理中' : '已完成') ?></td>
        <td><?= $repair['create_time'] ?></td>
    </tr>
    <?php endforeach; ?>
</table>

状态更新功能 创建管理员界面(admin_repair.php)允许修改报修状态

php实现报修

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

// 处理状态更新
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $id = $_POST['id'];
    $status = $_POST['status'];
    $update_time = date('Y-m-d H:i:s');

    $stmt = $db->prepare("UPDATE repair_orders SET status = ?, update_time = ? WHERE id = ?");
    $stmt->execute([$status, $update_time, $id]);
}

// 查询数据
$stmt = $db->query("SELECT * FROM repair_orders ORDER BY create_time DESC");
$repairs = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>

<?php foreach ($repairs as $repair): ?>
<form method="post">
    <input type="hidden" name="id" value="<?= $repair['id'] ?>">
    <select name="status">
        <option value="0" <?= $repair['status'] == 0 ? 'selected' : '' ?>>待处理</option>
        <option value="1" <?= $repair['status'] == 1 ? 'selected' : '' ?>>处理中</option>
        <option value="2" <?= $repair['status'] == 2 ? 'selected' : '' ?>>已完成</option>
    </select>
    <button type="submit">更新状态</button>
</form>
<?php endforeach; ?>

安全注意事项

输入验证 对所有用户输入进行过滤和验证,防止SQL注入和XSS攻击

$title = filter_input(INPUT_POST, 'title', FILTER_SANITIZE_STRING);
$content = filter_input(INPUT_POST, 'content', FILTER_SANITIZE_STRING);

用户认证 确保只有登录用户才能提交报修,管理员才能修改状态

session_start();
if (!isset($_SESSION['user_id'])) {
    header('Location: login.php');
    exit;
}

错误处理 添加适当的错误处理机制,记录错误日志

try {
    $db = new PDO('mysql:host=localhost;dbname=repair_system', 'username', 'password');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    error_log('数据库连接失败: ' . $e->getMessage());
    die('系统繁忙,请稍后再试');
}

标签: php
分享给朋友:

相关文章

php实现打印功能

php实现打印功能

PHP实现打印功能的方法 在PHP中实现打印功能可以通过多种方式完成,包括直接输出到浏览器、生成PDF文件、调用打印机接口等。以下是几种常见的方法: 直接输出HTML内容 PHP可以通过echo或p…

php 实现文档预览

php 实现文档预览

PHP 实现文档预览的方法 在 PHP 中实现文档预览功能通常涉及将文档转换为可预览的格式(如 PDF、HTML 或图片)。以下是几种常见的方法: 使用第三方库转换文档为 PDF 通过调用外部库或工…

php评论功能实现

php评论功能实现

数据库设计 创建一个评论表存储评论数据,表结构可包含以下字段: id:自增主键 content:评论内容(TEXT类型) user_id:关联用户表的ID article_id:关联文章表的ID c…

php 实现定时任务

php 实现定时任务

PHP 实现定时任务的方法 PHP 本身是脚本语言,通常需要借助外部工具或框架来实现定时任务。以下是几种常见的实现方式: 使用 Cron 任务 Cron 是 Linux 系统的定时任务工具,可以定期…

php实现在线客服

php实现在线客服

PHP实现在线客服系统 在线客服系统通常需要实时通信功能,可通过PHP结合WebSocket或长轮询实现。以下是几种常见实现方式: 使用WebSocket实现实时通信 安装Ratchet库(PHP…

php实现下载文件

php实现下载文件

使用PHP实现文件下载 PHP可以通过设置HTTP头信息实现文件下载功能。以下为几种常见方法: 使用readfile()函数 $file = 'path/to/file.pdf'; if (fi…