PHP
PHP
php
header("Location: dashboard.php");
exit();
?>
<div class="main-content">
<h1>Dashboard Hôtel</h1>
<div class="cards">
<div class="card">
<div class="info">
<h2>125</h2>
<p>Clients actuels</p>
</div>
</div>
<div class="card">
<div class="info">
<h2>80/100</h2>
<p>Chambres occupées</p>
</div>
</div>
<div class="card">
<div class="info">
<h2>23</h2>
<p>Réservations du jour</p>
</div>
</div>
<div class="card">
<div class="info">
<p>Revenus récents</p>
</div>
</div>
</div>
<div class="chart-container">
<h2>Statistiques mensuelles</h2>
<canvas id="statsChart"></canvas>
</div>
</div>
<header class="header">
<h2>Gestion Hôtel</h2>
<div class="user-area">
<button> 🔍</button>
<img src="images/user.png" alt="Utilisateur" class="user-icon">
</div>
</header>
<aside class="sidebar">
<ul>
<li><a href="#">🛏Chambres</a></li>
🚪 Déconnexion</a></li>
<li><a href="#">
</ul>
</aside>
body {
margin: 0;
display: flex;
background: #f4f6f8;
.sidebar {
width: 220px;
background-color: #263238;
color: white;
height: 100vh;
position: fixed;
padding-top: 20px;
.sidebar ul {
list-style: none;
padding: 0;
.sidebar ul li a {
color: white;
display: block;
padding: 15px;
text-decoration: none;
}
.sidebar ul li a:hover {
background-color: #37474F;
.header {
position: fixed;
left: 220px;
top: 0;
right: 0;
background-color: white;
display: flex;
justify-content: space-between;
.main-content {
margin-left: 220px;
margin-top: 80px;
padding: 20px;
.cards {
display: grid;
gap: 20px;
.card {
background: white;
border-radius: 10px;
padding: 20px;
display: flex;
align-items: center;
.card img {
width: 50px;
height: 50px;
margin-right: 15px;
.chart-container {
margin-top: 40px;
background: white;
padding: 20px;
border-radius: 10px;
}
document.addEventListener('DOMContentLoaded', function () {
new Chart(ctx, {
type: 'line',
data: {
datasets: [{
label: 'Réservations',
borderColor: 'blue',
fill: true
}]
},
options: {
responsive: true
});
});
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<?php
$host = 'localhost';
$dbname = 'hotel_db';
$user = 'root';
try {
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
?>
<?php
include '../includes/db.php';
$stats = [];
$today = date('Y-m-d');
$stmt = $pdo->query("SELECT COUNT(*) FROM clients WHERE date_arrivee <= '$today' AND
date_depart >= '$today'");
$stats['clients_actuels'] = $stmt->fetchColumn();
// Chambres occupées
// Chambres totales
$stats['chambres_total'] = $stmt->fetchColumn();
// Réservations aujourd'hui
$stats['reservations_jour'] = $stmt->fetchColumn();
$stats['revenus_recents'] = $stmt->fetchColumn() ?: 0;
echo json_encode($stats);
?>
document.addEventListener('DOMContentLoaded', function () {
fetch('data/stats.php')
.then(data => {
document.getElementById('clients-actuels').innerText = data.clients_actuels;
document.getElementById('chambres-occupees').innerText =
`${data.chambres_occupees}/${data.chambres_total}`;
document.getElementById('reservations-jour').innerText = data.reservations_jour;
document.getElementById('revenus-recents').innerText =
`${parseInt(data.revenus_recents).toLocaleString()} FCFA`;
});
// Graphique
new Chart(ctx, {
type: 'line',
data: {
datasets: [{
label: 'Réservations',
borderColor: 'blue',
fill: true
}]
},
options: {
responsive: true
});
});
<div class="card">
<h2 id="clients-actuels">...</h2>
<p>Clients actuels</p>
</div>
</div>
<div class="card">
<div class="info">
<h2 id="chambres-occupees">...</h2>
<p>Chambres occupées</p>
</div>
</div>
<div class="card">
<div class="info">
<h2 id="reservations-jour">...</h2>
<p>Réservations du jour</p>
</div>
</div>
<div class="card">
<div class="info">
<h2 id="revenus-recents">...</h2>
<p>Revenus récents</p>
</div>
</div>
<?php
include 'includes/db.php';
$message = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nom = $_POST['nom'];
$arrivee = $_POST['arrivee'];
$depart = $_POST['depart'];
} else {
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Ajouter un client</title>
</head>
<body class="form-page">
<div class="form-container">
<h2>Ajouter un client</h2>
<form method="POST">
<button type="submit">Ajouter</button>
</form>
</div>
</body>
</html>
.form-page {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background: #f4f6f8;
.form-container {
background: white;
padding: 30px;
border-radius: 12px;
width: 100%;
max-width: 400px;
.form-container h2 {
margin-bottom: 20px;
.form-container label {
display: block;
margin-top: 10px;
.form-container input {
width: 100%;
padding: 8px;
margin-top: 5px;
border-radius: 5px;
.form-container button {
margin-top: 20px;
width: 100%;
padding: 10px;
background: #007bff;
border: none;
color: white;
border-radius: 5px;
font-size: 16px;
.message {
background-color: #d4edda;
padding: 10px;
border-radius: 5px;
margin-bottom: 15px;
color: #155724;