🗣 Wd提问: php预约挂号系统源码
🤖 Ai回答: PHP预约挂号系统是一种基于Web的应用程序,用于帮助医院或诊所管理患者的预约和挂号。这类系统通常包括用户注册、登录、查看医生信息、选择医生和时间、提交预约请求等功能。以下是一个简单的PHP预约挂号系统的源码示例,供你参考。
1、系统结构
/clinic-appointment
│
├── index.php // 首页
├── login.php // 登录页面
├── register.php // 注册页面
├── dashboard.php // 用户仪表盘
├── doctors.php // 医生列表
├── appointment.php // 预约页面
├── submit_appointment.php // 提交预约请求
├── logout.php // 登出
├── db.php // 数据库连接
└── styles.css // 样式表
2、数据库设计
假设我们使用MySQL数据库,以下是数据库表的设计:
`users` 表(用户表)
sql
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
`doctors` 表(医生表)
sql
CREATE TABLE doctors (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
specialty VARCHAR(100) NOT NULL,
available_slots TEXT
);
`appointments` 表(预约表)
sql
CREATE TABLE appointments (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
doctor_id INT NOT NULL,
appointment_date DATETIME NOT NULL,
status ENUM('pending', 'confirmed', 'cancelled') DEFAULT 'pending',
FOREIGN KEY (user_id) REFERENCES users(id),
FOREIGN KEY (doctor_id) REFERENCES doctors(id)
);
3、源码示例
`db.php` 数据库连接
php
<?php
$host = 'localhost';
$dbname = 'clinic_appointment';
$username = 'root';
$password = '';
try {
$pdo = new PDO(mysql:host=$host;dbname=$dbname, $username, $password);
$pdo-setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die(Connection failed: 、$e-getMessage());
}
?
`index.php` 首页
php
<?php include 'db.php'; ?
<!DOCTYPE html
<html lang=en
<head
<meta charset=UTF-8
<titleClinic Appointment System</title
<link rel=stylesheet href=styles.css
</head
<body
<h1Welcome to Clinic Appointment System</h1
<a href=login.phpLogin</a | <a href=register.phpRegister</a
</body
</html
`login.php` 登录页面
php
<?php
include 'db.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $pdo-prepare(SELECT * FROM users WHERE username = ?);
$stmt-execute([$username]);
$user = $stmt-fetch();
if ($user && password_verify($password, $user['password'])) {
session_start();
$_SESSION['user_id'] = $user['id'];
header(Location: dashboard.php);
exit();
} else {
echo Invalid username or password.;
}
}
?
<!DOCTYPE html
<html lang=en
<head
<meta charset=UTF-8
<titleLogin</title
<link rel=stylesheet href=styles.css
</head
<body
<h1Login</h1
<form method=post
<labelUsername:</label<br
<input type=text name=username required<br<br
<labelPassword:</label<br
<input type=password name=password required<br<br
<button type=submitLogin</button
</form
<pDon't have an account? <a href=register.phpRegister here</a</p
</body
</html
`register.php` 注册页面
php
<?php
include 'db.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = $_POST['username'];
$email = $_POST['email'];
$password = password_hash($_POST['password'], PASSWORD_BCRYPT);
$stmt = $pdo-prepare(INSERT INTO users (username, email, password) VALUES (?, ?, ?));
$stmt-execute([$username, $email, $password]);
echo Registration successful! Please login.;
}
?
<!DOCTYPE html
<html lang=en
<head
<meta charset=UTF-8
<titleRegister</title
<link rel=stylesheet href=styles.css
</head
<body
<h1Register</h1
<form method=post
<labelUsername:</label<br
<input type=text name=username required<br<br
<labelEmail:</label<br
<input type=email name=email required<br<br
<labelPassword:</label<br
<input type=password name=password required<br<br
<button type=submitRegister</button
</form
<pAlready have an account? <a href=login.phpLogin here</a</p
</body
</html
`dashboard.php` 用户仪表盘
php
<?php
session_start();
if (!isset($_SESSION['user_id'])) {
header(Location: login.php);
exit();
}
include 'db.php';
$user_id = $_SESSION['user_id'];
?
<!DOCTYPE html
<html lang=en
<head
<meta charset=UTF-8
<titleDashboard</title
<link rel=stylesheet href=styles.css
</head
<body
<h1Welcome, User!</h1
<pYour ID: <?php echo $user_id; ?</p
<a href=doctors.phpView Doctors</a | <a href=logout.phpLogout</a
</body
</html
`doctors.php` 医生列表
php
<?php
include 'db.php';
$stmt = $pdo-query(SELECT * FROM doctors);
$doctors = $stmt-fetchAll();
?
<!DOCTYPE html
<html lang=en
<head
<meta charset=UTF-8
<titleDoctors List</title
<link rel=stylesheet href=styles.css
</head
<body
<h1Available Doctors</h1
<ul
<?php foreach ($doctors as $doctor): ?
<li
<strong<?php echo $doctor['name']; ?</strong <?php echo $doctor['specialty']; ?
<a href=appointment.php?doctor_id=<?php echo $doctor['id']; ?Book Appointment</a
</li
<?php endforeach; ?
</ul
<a href=dashboard.phpBack to Dashboard</a
</body
</html
`appointment.php` 预约页面
php
<?php
session_start();
if (!isset($_SESSION['user_id'])) {
header(Location: login.php);
exit();
}
include 'db.php';
$doctor_id = $_GET['doctor_id'];
$stmt = $pdo-prepare(SELECT * FROM doctors WHERE id = ?);
$stmt-execute([$doctor_id]);
$doctor = $stmt-fetch();
?
<!DOCTYPE html
<html lang=en
<head
<meta charset=UTF-8
<titleBook Appointment</title
<link rel=stylesheet href=styles.css
</head
<body
<h1Book Appointment with <?php echo $doctor['name']; ?</h1
<form method=post action=submit_appointment.php
<input type=hidden name=doctor_id value=<?php echo $doctor_id; ?
<labelSelect Date and Time:</label<br
<input type=datetime-local name=appointment_date required<br<br
<button type=submitSubmit Appointment</button
</form
<a href=doctors.phpBack to Doctors List</a
</body
</html
`submit_appointment.php` 提交预约请求
php
<?php
session_start();
if (!isset($_SESSION['user_id'])) {
header(Location: login.php);
exit();
}
include 'db.php';
$user_id = $_SESSION['user_id'];
$doctor_id = $_POST['doctor_id'];
$appointment_date = $_POST['appointment_date'];
$stmt = $pdo-prepare(INSERT INTO appointments (user_id, doctor_id, appointment_date) VALUES (?, ?, ?));
$stmt-execute([$user_id, $doctor_id, $appointment_date]);
echo Appointment booked successfully!;
header(Location: dashboard.php);
exit();
?
`logout.php` 登出
php
<?php
session_start();
session_destroy();
header(
📣 商家广告 :
👍
0
👎
IP地址: 40.48.125.226
搜索次数: 3
提问时间: 2025-11-11 04:43:33
🛒 域名购买 :
v.jl.cn mv8.net wd.chat op.gs te.biz yq.gs wzhy.net yxxg.cn 63.gold yz.biz
❓️ 热门提问 :
图片压缩工具服务器部署 cdn与服务器 提供云服务器 name.fj域名 云雾空间 网站安全托管 如何申请开通域名 六安ip 比较便宜的 云服务器 虚拟主机和服务器哪个好 豌豆Ai站群搜索引擎系统
🌐 域名评估 :
f.sh.cn ggym.cn hqie.cn musk.shopping lt.gs f.cq.cn sf.qh.cn lb.gs Zhao.work xphone.yachts
⛏ 最新挖掘 :
凯里酸汤鱼 贵阳烤脑花 都匀毛尖茶 花溪牛肉粉 贵阳烤生蚝 贵阳烤豆腐 贵阳纸包鱼 贵阳特色菜
🖌 热门作画 :
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊 :
🔗 友情链接 :
青蛙Ai系统
google英文优化
ai提问
🧰 站长工具 :Ai工具 whois查询 搜索
📢 温馨提示 :本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持 :本站由豌豆Ai 提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。