在这个数字化时代,旅游预订系统已成为旅游业不可或缺的一部分。本文将带你一步步用PHP构建一个功能齐全的在线旅游预订系统,让你的旅游业务焕发新生。
项目背景与需求分析
首先,明确我们的目标:一个用户友好的在线旅游预订系统,支持景点查询、行程规划、在线支付等功能。用户可以轻松浏览景点、选择行程、下单支付,而管理员则能管理景点信息、订单和用户数据。
技术栈选择
我们选择PHP作为后端开发语言,搭配MySQL数据库存储数据。前端则使用HTML、CSS和JavaScript,确保界面美观且响应迅速。
系统架构设计
1. 数据库设计
首先,设计数据库结构。主要表包括:
- users:存储用户信息
- destinations:存储景点信息
- bookings:存储预订信息
- payments:存储支付信息
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL,
email VARCHAR(100) NOT NULL
);
CREATE TABLE destinations (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
description TEXT,
price DECIMAL(10, 2) NOT NULL
);
CREATE TABLE bookings (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
destination_id INT,
date_booked DATE,
FOREIGN KEY (user_id) REFERENCES users(id),
FOREIGN KEY (destination_id) REFERENCES destinations(id)
);
CREATE TABLE payments (
id INT AUTO_INCREMENT PRIMARY KEY,
booking_id INT,
amount DECIMAL(10, 2) NOT NULL,
payment_date DATE,
FOREIGN KEY (booking_id) REFERENCES bookings(id)
);
2. 后端逻辑
使用PHP实现后端逻辑,主要包括用户注册登录、景点展示、预订处理和支付功能。
用户注册与登录
// 注册用户
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['register'])) {
$username = $_POST['username'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$email = $_POST['email'];
$sql = "INSERT INTO users (username, password, email) VALUES ('$username', '$password', '$email')";
mysqli_query($conn, $sql);
}
// 用户登录
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['login'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE username='$username'";
$result = mysqli_query($conn, $sql);
$user = mysqli_fetch_assoc($result);
if (password_verify($password, $user['password'])) {
$_SESSION['user_id'] = $user['id'];
}
}
景点展示
// 获取所有景点
$sql = "SELECT * FROM destinations";
$result = mysqli_query($conn, $sql);
$destinations = [];
while ($row = mysqli_fetch_assoc($result)) {
$destinations[] = $row;
}
预订处理
// 提交预订
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['book'])) {
$user_id = $_SESSION['user_id'];
$destination_id = $_POST['destination_id'];
$date_booked = date('Y-m-d');
$sql = "INSERT INTO bookings (user_id, destination_id, date_booked) VALUES ('$user_id', '$destination_id', '$date_booked')";
mysqli_query($conn, $sql);
}
支付功能
// 处理支付
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['pay'])) {
$booking_id = $_POST['booking_id'];
$amount = $_POST['amount'];
$payment_date = date('Y-m-d');
$sql = "INSERT INTO payments (booking_id, amount, payment_date) VALUES ('$booking_id', '$amount', '$payment_date')";
mysqli_query($conn, $sql);
}
3. 前端界面
使用HTML、CSS和JavaScript构建用户界面,确保用户操作简便直观。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>在线旅游预订系统</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header>
<h1>欢迎来到在线旅游预订系统</h1>
</header>
<main>
<!-- 注册登录表单 -->
<form id="registerForm">
评论(0)