当前位置:首页 > 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
// 连接数据库
$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
// 连接数据库
$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;
}

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

php实现报修

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 中,接口(Interface)用于定义一组方法的规范,而不包含具体的实现。类可以实现(implement)接口,并必须实现接口中定义的所有方法。 定义接口 接口通…

php队列的实现

php队列的实现

PHP队列的实现方式 PHP中实现队列功能可以通过多种方式,根据需求选择适合的方案: 使用数组实现基础队列 PHP数组本身支持队列操作,利用array_push和array_shift函数: $q…

php实现登陆

php实现登陆

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

无限分类实现 php

无限分类实现 php

无限分类的实现方法 无限分类通常用于构建多层级结构的数据,如商品分类、部门架构等。以下是几种常见的实现方式: 邻接列表模式(Adjacency List) 邻接列表是最简单的实现方式,通过在每个记录…

php实现过程

php实现过程

PHP 实现过程 PHP 是一种广泛使用的服务器端脚本语言,特别适合 Web 开发。以下是 PHP 实现过程的关键步骤和注意事项。 安装与配置 下载并安装 PHP,可以从官方 PHP 网站获取最新版…

php实现伪静态

php实现伪静态

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