当前位置:首页 > PHP

PHP实现预约

2026-01-29 19:23:37PHP

PHP预约系统实现方法

创建预约系统需要处理用户输入、数据存储和验证。以下是一个基本的PHP预约系统实现框架:

数据库表结构

CREATE TABLE appointments (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL,
    phone VARCHAR(20) NOT NULL,
    date DATE NOT NULL,
    time TIME NOT NULL,
    service VARCHAR(100) NOT NULL,
    notes TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

预约表单HTML

PHP实现预约

<form action="book.php" method="post">
    <input type="text" name="name" placeholder="姓名" required>
    <input type="email" name="email" placeholder="邮箱" required>
    <input type="tel" name="phone" placeholder="电话" required>
    <input type="date" name="date" required>
    <input type="time" name="time" required>
    <select name="service" required>
        <option value="">选择服务</option>
        <option value="咨询">咨询</option>
        <option value="体检">体检</option>
    </select>
    <textarea name="notes" placeholder="备注"></textarea>
    <button type="submit">提交预约</button>
</form>

处理预约的PHP脚本(book.php)

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

// 验证输入
$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
$phone = filter_input(INPUT_POST, 'phone', FILTER_SANITIZE_STRING);
$date = filter_input(INPUT_POST, 'date', FILTER_SANITIZE_STRING);
$time = filter_input(INPUT_POST, 'time', FILTER_SANITIZE_STRING);
$service = filter_input(INPUT_POST, 'service', FILTER_SANITIZE_STRING);
$notes = filter_input(INPUT_POST, 'notes', FILTER_SANITIZE_STRING);

// 检查时间冲突
$stmt = $db->prepare("SELECT COUNT(*) FROM appointments WHERE date = ? AND time = ?");
$stmt->execute([$date, $time]);
$conflicts = $stmt->fetchColumn();

if ($conflicts > 0) {
    die("该时间段已被预约,请选择其他时间");
}

// 插入数据库
$stmt = $db->prepare("INSERT INTO appointments (name, email, phone, date, time, service, notes) VALUES (?, ?, ?, ?, ?, ?, ?)");
$success = $stmt->execute([$name, $email, $phone, $date, $time, $service, $notes]);

if ($success) {
    header("Location: success.html");
} else {
    echo "预约失败,请重试";
}
?>

预约系统功能扩展

发送确认邮件

PHP实现预约

$to = $email;
$subject = "预约确认";
$message = "尊敬的$name,您的$service预约已确认\n日期:$date\n时间:$time";
$headers = "From: noreply@example.com";
mail($to, $subject, $message, $headers);

管理员界面 创建管理员界面查看和管理预约:

$stmt = $db->query("SELECT * FROM appointments ORDER BY date, time");
$appointments = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($appointments as $app) {
    echo "<tr>
        <td>{$app['name']}</td>
        <td>{$app['date']} {$app['time']}</td>
        <td>{$app['service']}</td>
        <td><a href='delete.php?id={$app['id']}'>取消</a></td>
    </tr>";
}

安全注意事项

验证所有用户输入,防止SQL注入 使用预处理语句处理数据库查询 对敏感数据进行加密存储 实现CSRF保护机制 设置适当的访问控制权限

这个基本框架可以根据具体需求进行扩展,如添加用户账户系统、支付集成、短信通知等功能。

标签: PHP
分享给朋友:

相关文章

PHP http长连接的实现

PHP http长连接的实现

HTTP 长连接基础概念 HTTP长连接(Keep-Alive)允许在单个TCP连接上发送和接收多个HTTP请求/响应,减少重复建立和断开连接的开销。HTTP/1.1默认启用长连接,而HTTP/1.0…

PHP实现会员管理

PHP实现会员管理

PHP实现会员管理的方法 数据库设计 创建会员表(members)包含字段:id(主键)、username、password(建议加密存储)、email、register_time、last_logi…

PHP实现图文聊天

PHP实现图文聊天

PHP实现图文聊天的方法 数据库设计 创建数据库表存储聊天消息,包含字段如消息ID、发送者ID、接收者ID、消息内容、消息类型(文本/图片)、发送时间等。使用MySQL或其他数据库管理系统。 CR…

PHP审核流程实现

PHP审核流程实现

PHP审核流程实现方法 审核流程的实现通常涉及状态管理、权限控制和操作记录。以下是几种常见的实现方式: 状态机模式 定义审核状态常量,使用状态机控制流程流转: const STATUS_PEN…

拼团 PHP实现

拼团 PHP实现

拼团功能 PHP 实现 拼团是一种常见的电商营销模式,允许用户邀请好友一起购买商品,达到指定人数后享受优惠价格。以下是使用 PHP 实现拼团功能的关键步骤和代码示例。 数据库设计 拼团功能通常需要…

PHP中实现重定向

PHP中实现重定向

PHP重定向的实现方法 在PHP中,重定向是通过发送HTTP头信息来实现的。以下是几种常见的重定向方法: 使用header()函数 header("Location: https://exampl…