Maison >développement back-end >tutoriel php >Comment mettre en œuvre un système de réservation en ligne simple en utilisant PHP

Comment mettre en œuvre un système de réservation en ligne simple en utilisant PHP

王林
王林original
2023-09-25 11:12:36846parcourir

Comment mettre en œuvre un système de réservation en ligne simple en utilisant PHP

Comment utiliser PHP pour mettre en œuvre un système de réservation en ligne simple

Introduction :

Avec le développement d'Internet, les systèmes de réservation en ligne sont devenus la norme dans de nombreux secteurs. Cet article expliquera comment utiliser le langage PHP pour implémenter un système de réservation en ligne simple et donnera des exemples de code correspondants.

1. Analyse des exigences du système

Notre système de réservation en ligne doit avoir les fonctions de base suivantes :

  1. Inscription et connexion des utilisateurs : les utilisateurs peuvent créer un compte et se connecter pour gérer et réserver les informations associées.
  2. Affichage de la liste d'hôtels : les utilisateurs peuvent parcourir la liste d'hôtels dans le système et afficher les informations sur l'hôtel correspondant.
  3. Réserver un hôtel : les utilisateurs peuvent choisir leur hôtel préféré et faire une réservation. Dans le même temps, le système doit enregistrer les informations sur l'hôtel réservé par l'utilisateur.
  4. Gestion des commandes : les utilisateurs peuvent consulter les informations de leur commande et effectuer les opérations de gestion correspondantes (telles que l'annulation et la modification des commandes).
  5. Gestion backend : l'administrateur doit être capable de gérer les informations sur l'hôtel et les commandes dans le système, et d'effectuer des statistiques et de générer des rapports sur les données correspondantes.

2. Conception de la base de données

Créez deux tables dans MySQL, l'une est la table utilisateur pour stocker les informations utilisateur et l'autre est la table hôtel pour stocker les informations sur l'hôtel. La structure du tableau d'informations utilisateur est la suivante :

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) NON NULL,

email varchar(50) NON NULL,

mot de passe varchar(50) NON NULL,

CLÉ PRIMAIRE (id)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
  1. La structure du tableau d'informations de l'hôtel est la suivante :

CREATE TABLE hotel (

id int(11) NON NULL AUTO_INCREMENT,

nom varchar(50) NON NULL,

adresse varchar(100) NON NULL,

prix décimal (10,2) NOT NULL,

PRIMARY KEY (id)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
  1. 3. Implémentation du système

Fonction d'enregistrement et de connexion :

    Exemple de code :
  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>

Fonction d'affichage et de réservation de la liste d'hôtels :

🎜Exemple de code : 🎜🎜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 '预订成功';
?>
🎜🎜Fonction de gestion des commandes : Omis, vous pouvez le récupérer à partir de la table de réservation en fonction de l'ID utilisateur. Rechercher les informations de commande et effectuer les opérations de gestion correspondantes. 🎜🎜Fonction de gestion backend : omise, vous pouvez gérer et compter les informations sur les hôtels et les commandes après vous être connecté avec le compte administrateur. 🎜🎜🎜Conclusion : 🎜🎜Cet article présente comment utiliser le langage PHP pour implémenter un système de réservation en ligne simple et donne des exemples de code correspondants. Les lecteurs peuvent apporter les modifications et extensions correspondantes en fonction de leurs propres besoins pour obtenir des fonctions plus complètes. J'espère que cet article vous aidera ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn