首页 >后端开发 >php教程 >如何使用PHP实现一个简单的在线预订系统

如何使用PHP实现一个简单的在线预订系统

王林
王林原创
2023-09-25 11:12:36808浏览

如何使用PHP实现一个简单的在线预订系统

如何使用PHP实现一个简单的在线预订系统

引言:

随着互联网的发展,在线预订系统已经成为许多行业的标配。本文将介绍如何使用PHP语言来实现一个简单的在线预订系统,并给出相应的代码示例。

一、系统需求分析

我们的在线预订系统需要具备以下基本功能:

  1. 用户注册和登录:用户可以注册账号,并通过登录来管理和预定相关信息。
  2. 酒店列表展示:用户可以浏览系统中的酒店列表,并查看相应的酒店信息。
  3. 预订酒店:用户可以选择心仪的酒店,并进行预订。同时,系统需要记录用户预订的酒店信息。
  4. 订单管理:用户可以查看自己的订单信息,并进行相应的管理操作(如取消、修改订单)。
  5. 后台管理:管理员需要能够管理系统中的酒店和订单信息,并进行相应数据的统计和报表生成。

二、数据库设计

在MySQL中创建两个表,一个是用于存储用户信息的user表,另一个是用于存储酒店信息的hotel表。用户信息表的结构如下:

CREATE TABLE user (user (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
email varchar(50) NOT NULL,
password varchar(50) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

酒店信息表的结构如下:

CREATE TABLE hotel (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
address varchar(100) NOT NULL,
price decimal(10,2) NOT NULL,
PRIMARY KEY (id id int(11) NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,

email varchar(50) NOT NULL,

password varchar(50) NOT NULL,

PRIMARY KEY (id)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
  1. 酒店信息表的结构如下:

CREATE TABLE hotel (

id int(11) NOT NULL AUTO_INCREMENT,

name varchar(50) NOT NULL,

address varchar(100) NOT NULL,

price decimal(10,2) NOT NULL,

PRIMARY KEY (id)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
  1. 三、系统实现

注册和登录功能:

    代码示例:
  1. register.php:
  2. <?php
    require 'db.php';
    
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        $name = $_POST['name'];
        $email = $_POST['email'];
        $password = password_hash($_POST['password'], PASSWORD_DEFAULT);
        
        $sql = "INSERT INTO user(name, email, password) VALUES('$name', '$email', '$password')";
        mysqli_query($conn, $sql);
        
        header('Location: login.php');
        exit;
    }
    ?>
    
    <form action="" method="post">
        <input type="text" name="name" placeholder="用户名" required>
        <input type="email" name="email" placeholder="邮箱" required>
        <input type="password" name="password" placeholder="密码" required>
        <button type="submit">注册</button>
    </form>
  3. login.php:
<?php
require 'db.php';

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $email = $_POST['email'];
    $password = $_POST['password'];
    
    $sql = "SELECT * FROM user WHERE email='$email'";
    $result = mysqli_query($conn, $sql);
    $user = mysqli_fetch_assoc($result);
    
    if ($user && password_verify($password, $user['password'])) {
        session_start();
        $_SESSION['user_id'] = $user['id'];
        header('Location: index.php');
        exit;
    } else {
        echo '用户名或密码错误';
    }
}
?>

<form action="" method="post">
    <input type="email" name="email" placeholder="邮箱" required>
    <input type="password" name="password" placeholder="密码" required>
    <button type="submit">登录</button>
</form>

酒店列表展示和预订功能:

🎜代码示例:🎜🎜index.php:🎜
<?php
require 'db.php';

$sql = "SELECT * FROM hotel";
$result = mysqli_query($conn, $sql);
$hotels = mysqli_fetch_all($result, MYSQLI_ASSOC);
?>

<?php foreach($hotels as $hotel): ?>
    <h3><?php echo $hotel['name']; ?></h3>
    <p>地址:<?php echo $hotel['address']; ?></p>
    <p>价格:<?php echo $hotel['price']; ?></p>
    <a href="booking.php?id=<?php echo $hotel['id']; ?>">预订</a>
<?php endforeach; ?>

booking.php:
<?php
session_start();
require 'db.php';

if (!isset($_SESSION['user_id'])) {
    header('Location: login.php');
    exit;
}

$hotel_id = $_GET['id'];
$user_id = $_SESSION['user_id'];

$sql = "INSERT INTO booking(user_id, hotel_id) VALUES('$user_id', '$hotel_id')";
mysqli_query($conn, $sql);

echo '预订成功';
?>
🎜🎜订单管理功能:省略,可以根据用户ID从booking表中查询订单信息,并进行相应的管理操作。🎜🎜后台管理功能:省略,可以根据管理员账号登录后,实现对酒店和订单信息的管理和统计。🎜🎜🎜结语:🎜🎜本文介绍了如何使用PHP语言来实现一个简单的在线预订系统,并给出了相应的代码示例。读者可以根据自己的需求进行相应的修改和拓展,以实现更加完善的功能。希望本文对你有所帮助!🎜

以上是如何使用PHP实现一个简单的在线预订系统的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn