oujood.com

Comment créer une application de réservation en ligne

Découvrez comment créer une application de réservation en PHP avec validation des dates. Notre tutoriel détaillé vous guide à travers le processus étape par étape.

chercher |

Application de Réservation en Ligne en PHP

L'application de réservation en ligne est un outil très utile pour la gestion des réservations dans les entreprises. Cette application est conçue pour permettre aux utilisateurs de réserver rapidement et facilement des services en ligne sans avoir à les faire par téléphone ou par courrier électronique.

Validation de Date

La validation des dates est un élément clé de l'application de réservation en ligne. Elle permet de s'assurer que les utilisateurs ne peuvent pas réserver des services pour des dates passées ou pour des dates qui ne sont pas disponibles.

La validation de date doit être effectuée à la fois côté client et côté serveur. Côté client, cette validation doit être effectuée en utilisant le langage de programmation JavaScript. Côté serveur, cette validation doit être effectuée en utilisant PHP.

Et voici un exemple de code pour réaliser une application de réservation en ligne en PHP avec la validation des dates:

Exemple :       Copier le code

< ;?php
$servername = "localhost";
$username = "nom_utilisateur";
$password = "mot_de_passe";
$dbname = "nom de la base de données";
// Connexion à la base de données
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Vérifier la connexion
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}
// Vérifier si le formulaire est soumis
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  // Récupérer les données du formulaire
  $nom = $_POST["nom"];
  $date = $_POST["date"];
  // Vérifier que la date n'est pas passée
  if (strtotime($date) < strtotime(date("Y-m-d"))) {
    echo "La date que vous avez sélectionnée est déjà passée.";
  // Vérifier que la date est disponible
  } else {
    $sql = "SELECT * FROM reservations WHERE date = '$date'";
    $result = mysqli_query($conn, $sql);
    if (mysqli_num_rows($result) > 0) {
      echo "La date que vous avez sélectionnée n'est pas disponible. Veuillez choisir une autre date.";
    } else {
      // Insérer la réservation dans la base de données
      $sql = "INSERT INTO reservations (nom, date) VALUES ('$nom', '$date')";
      if (mysqli_query($conn, $sql)) {
        echo "Votre réservation a été enregistrée avec succès!";
      } else {
        echo "Une erreur s'est produite lors de l'enregistrement de votre réservation. Veuillez réessayer.";
      }
    }
  }
  // Fermer la connexion à la base de données
  mysqli_close($conn);
}
?> ;

Ce code permet de se connecter à la base de données MySQL, de récupérer les données du formulaire, de valider la date pour s'assurer qu'elle n'est pas déjà passée et qu'elle est également disponible, et finalement d'enregistrer la réservation dans la base de données si elle est valide. Bien entendu, ce n'est qu'un exemple et le code peut être adapté en fonction des besoins spécifiques de votre application.

Approche orientée objet

Et voici le code ci-dessus pour réaliser une application de réservation en ligne en PHP avec validation des dates en utilisant une approche orientée objet :

Exemple :       Copier le code

< ;?php
//Définir la classe pour la connexion à la base de données
class Database {
    private $host = "localhost";
    private $user = "nom_utilisateur";
    private $pass = "mot_de_passe";
    private $dbname = "nom de la base de données";
    private $conn;
    public function connect() {
        try {
            $this->conn = new PDO(
                "mysql:host=$this->host;dbname=$this->dbname",
                $this->user,
                $this->pass
            );
        } catch (PDOException $e) {
            echo "Connection failed: " . $e->getMessage();
        }
        return $this->conn;
    }
}
//Définir la classe pour la réservation
class Reservation {
    private $db;
    private $table = "reservations";
    public $nom;
    public $date;
    public function __construct() {
        $this->db = new Database();
    }
    //Méthode pour ajouter une réservation dans la base de données
    public function ajouter() {
        $conn = $this->db->connect();
        $stmt = $conn->prepare("INSERT INTO $this->table (nom, date) VALUES (:nom, :date)");
        $stmt->bindParam(":nom", $this->nom);
        $stmt->bindParam(":date", $this->date);
        if ($stmt->execute()) {
            return true;
        }
        printf("Erreur: %s.\n", $stmt->error);
        return false;
    }
}
$reservation = new Reservation();
// Vérifier si le formulaire est soumis
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Récupérer les données du formulaire
    $reservation->nom = $_POST["nom"];
    $reservation->date = $_POST["date"];
    // Vérifier que la date n'est pas passée
    if (strtotime($reservation->date) < strtotime(date("Y-m-d"))) {
        echo "La date que vous avez sélectionnée est déjà passée.";
    // Vérifier que la date est disponible
    } else {
        $conn = $reservation->db->connect();
        $stmt = $conn->prepare    ("SELECT * FROM $reservation->table WHERE date = :date");
    $stmt->bindParam(":date", $reservation->date);
    $stmt->execute();
    if ($stmt->rowCount() > 0) {
        echo "La date que vous avez sélectionnée n'est pas disponible. Veuillez choisir une autre date.";
    } else {
        // Insérer la réservation dans la base de données
        if ($reservation->ajouter()) {
            echo "Votre réservation a été enregistrée avec succès!";
        } else {
            echo "Une erreur s'est produite lors de l'enregistrement de votre réservation. Veuillez réessayer.";
        }
    }
}}
?> ;

Dans cet exemple de code, nous avons défini deux classes, `Database` et `Reservation`. La classe `Database` est responsable de la connexion à la base de données MySQL à l'aide de PDO, tandis que la classe `Reservation` est responsable de la manipulation des données liées à la réservation. Nous avons également défini une méthode `ajouter()` pour la classe `Reservation`, qui insère une nouvelle réservation dans la base de données.

Ensuite, nous avons créé une instance de la classe `Reservation`, récupéré les données du formulaire, validé la date pour s'assurer qu'elle n'est pas déjà passée et qu'elle est également disponible et finalement enregistré la réservation dans la base de données si elle est valide.

Ce code utilise une approche orientée objet pour une manipulation des données plus propre et plus efficace.

Voici une explication détaillée du code :

  • La classe "Database" est définie pour gérer la connexion à la base de données. Elle utilise la bibliothèque PDO (PHP Data Objects) pour établir la connexion. Les informations de connexion telles que l'hôte, le nom d'utilisateur, le mot de passe et le nom de la base de données sont stockées dans des variables privées.
  • La méthode "connect" de la classe "Database" crée une instance de la classe PDO en utilisant les informations de connexion. Si la connexion échoue, une exception de type PDOException est attrapée et un message d'erreur est affiché.
  • La classe "Reservation" représente une réservation. Elle a une dépendance avec la classe "Database" pour établir la connexion à la base de données. Les propriétés de la classe "Reservation" sont "nom" (pour le nom de la réservation) et "date" (pour la date de la réservation).
  • Le constructeur de la classe "Reservation" crée une instance de la classe "Database" pour pouvoir utiliser ses fonctionnalités de connexion à la base de données.
  • La méthode "ajouter" de la classe "Reservation" insère une réservation dans la base de données. Elle commence par appeler la méthode "connect" de l'objet "Database" pour obtenir une connexion à la base de données. Ensuite, elle prépare une requête SQL d'insertion en utilisant les propriétés "table", "nom" et "date" de l'objet "Reservation". Les valeurs des propriétés "nom" et "date" sont liées à des paramètres dans la requête pour éviter les attaques par injection SQL. Si l'exécution de la requête est réussie, la méthode renvoie true. Sinon, elle affiche un message d'erreur avec l'erreur spécifique et renvoie false.
  • Une instance de la classe "Reservation" est créée en dehors des classes pour pouvoir l'utiliser ultérieurement.
  • Le code vérifie si le formulaire a été soumis en vérifiant la valeur de la variable superglobale $_SERVER["REQUEST_METHOD"]. Si la méthode de requête est "POST", cela signifie que le formulaire a été soumis.
  • Les données du formulaire (nom et date) sont récupérées à partir de la variable $_POST et assignées aux propriétés correspondantes de l'objet "Reservation".
  • Le code vérifie si la date sélectionnée n'est pas déjà passée en comparant la date actuelle avec la date de la réservation. Si la date est passée, un message est affiché.
  • Si la date est valide, le code vérifie si la date est disponible en exécutant une requête SELECT dans la base de données. La requête vérifie si une réservation existe déjà pour la même date. Si une ou plusieurs réservations sont trouvées, un message est affiché.
  • Si la date est disponible, la méthode "ajouter" de l'objet "Reservation" est appelée pour insérer la réservation dans la base de données. Si l'ajout est réussi, un message de succès est affiché. Sinon, un message d'erreur est affiché.


Retour à l'accueil du site


Voir aussi nos tutoriel :

PHP condition If else

PHP condition If else

Balise figure

Spécifie autonome le contenu

Les effets jQuery

Les effets jQuery