PHP打造在线旅游预订系统

admin 2025-01-14 657 0

在这个数字化时代,旅游预订系统已成为旅游业不可或缺的一部分。本文将带你一步步用PHP构建一个功能齐全的在线旅游预订系统,让你的旅游业务焕发新生。

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)