From 20df067b19ed7a3dd67fb1c1de040a675685638f Mon Sep 17 00:00:00 2001 From: yanishimidi Date: Sun, 2 Nov 2025 19:53:50 +0100 Subject: [PATCH] =?UTF-8?q?Refonte=20compl=C3=A8te=20du=20projet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 0 -> 6148 bytes .env.example | 4 ++++ .gitignore | 5 +++++ README.md | 12 +++++++++++ includes/db.php | 18 ++++++++++++++++ includes/footer.php | 6 ++++++ includes/header.php | 17 +++++++++++++++ public/add.php | 34 ++++++++++++++++++++++++++++++ public/admin.php | 22 +++++++++++++++++++ public/article.php | 29 +++++++++++++++++++++++++ public/delete.php | 45 +++++++++++++++++++++++++++++++++++++++ public/edit.php | 50 ++++++++++++++++++++++++++++++++++++++++++++ public/index.php | 18 ++++++++++++++++ public/login.php | 34 ++++++++++++++++++++++++++++++ public/logout.php | 5 +++++ public/style.css | 27 ++++++++++++++++++++++++ 16 files changed, 326 insertions(+) create mode 100644 .DS_Store create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 README.md create mode 100644 includes/db.php create mode 100644 includes/footer.php create mode 100644 includes/header.php create mode 100644 public/add.php create mode 100644 public/admin.php create mode 100644 public/article.php create mode 100644 public/delete.php create mode 100644 public/edit.php create mode 100644 public/index.php create mode 100644 public/login.php create mode 100644 public/logout.php create mode 100644 public/style.css diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f01141ce79e3265f7d3a1e6d22b431dc0e5857fb GIT binary patch literal 6148 zcmeHKL2uJA6n@^y<}x8F!K57{aUIZ(!8CEnN;z;P2o3|4rm41wG!9Ke4^^d{H;LOc zZu|}Y0snvl;#Y9w0`J+cqG>bWG6a*KWPdOA_u~3{wH*V1Xl6kJpauXE3t{ClRwYLL zR2FQBTdpDs{f=9Z!fS{gMXI~NwhdMRtH8ge0IgjK0c6mJ1ZLK+A1NREXk++-6vq-P2O_cd)-7^iTI&Vmln zLBs2+eljJMar&y&;_F%F~4m>a|%G+{y!O{m~2hA`pS z?l8|~%nh1w5PbO%JhI>$iqNCu`yEXO;Tp8HRlq7xRAAXW*693yc=r9j7-XNU0#< PDO::ERRMODE_EXCEPTION, + PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, +]; + +try { + $pdo = new PDO($dsn, $user, $pass, $options); +} catch (\PDOException $e) { + die("Erreur de connexion : " . $e->getMessage()); +} diff --git a/includes/footer.php b/includes/footer.php new file mode 100644 index 0000000..a002e0b --- /dev/null +++ b/includes/footer.php @@ -0,0 +1,6 @@ + +
+

© 2025 Mini CMS. Tous droits réservés.

+
+ + diff --git a/includes/header.php b/includes/header.php new file mode 100644 index 0000000..30cd3a3 --- /dev/null +++ b/includes/header.php @@ -0,0 +1,17 @@ + + + + + CMS + + + +
+

Mini CMS

+ +
+
diff --git a/public/add.php b/public/add.php new file mode 100644 index 0000000..51d0b63 --- /dev/null +++ b/public/add.php @@ -0,0 +1,34 @@ +prepare("INSERT INTO articles (titre, contenu, date_creation) VALUES (?, ?, NOW())"); + $stmt->execute([$titre, $contenu]); + echo "

Article ajouté avec succès.

"; + } else { + echo "

Veuillez remplir tous les champs.

"; + } +} +?> + +

Ajouter un article

+
+
+

+
+

+ +
+ + diff --git a/public/admin.php b/public/admin.php new file mode 100644 index 0000000..0c2dca5 --- /dev/null +++ b/public/admin.php @@ -0,0 +1,22 @@ + + +

Tableau de bord

+

Bienvenue, !

+ + + + diff --git a/public/article.php b/public/article.php new file mode 100644 index 0000000..96fa44d --- /dev/null +++ b/public/article.php @@ -0,0 +1,29 @@ +Article introuvable (404)

"; + require_once '../includes/footer.php'; + exit; +} + +$stmt = $pdo->prepare("SELECT * FROM articles WHERE id = ?"); +$stmt->execute([$id]); +$article = $stmt->fetch(); + +if (!$article) { + echo "

Article introuvable (404)

"; + require_once '../includes/footer.php'; + exit; +} +?> +
+

+

+ Publié le +
+ + diff --git a/public/delete.php b/public/delete.php new file mode 100644 index 0000000..255bbad --- /dev/null +++ b/public/delete.php @@ -0,0 +1,45 @@ +Article introuvable (404)

"; + require_once '../includes/footer.php'; + exit; +} + +$stmt = $pdo->prepare("SELECT * FROM articles WHERE id = ?"); +$stmt->execute([$id]); +$article = $stmt->fetch(); + +if (!$article) { + echo "

Article introuvable (404)

"; + require_once '../includes/footer.php'; + exit; +} + +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + $stmt = $pdo->prepare("DELETE FROM articles WHERE id = ?"); + $stmt->execute([$id]); + echo "

Article supprimé avec succès.

"; + echo 'Retour au tableau de bord'; + require_once '../includes/footer.php'; + exit; +} +?> + +

Supprimer l'article

+

Êtes-vous sûr de vouloir supprimer l'article "" ?

+
+ + Annuler +
+ + diff --git a/public/edit.php b/public/edit.php new file mode 100644 index 0000000..6901385 --- /dev/null +++ b/public/edit.php @@ -0,0 +1,50 @@ +Article introuvable (404)

"; + require_once '../includes/footer.php'; + exit; +} + +$stmt = $pdo->prepare("SELECT * FROM articles WHERE id = ?"); +$stmt->execute([$id]); +$article = $stmt->fetch(); + +if (!$article) { + echo "

Article introuvable (404)

"; + require_once '../includes/footer.php'; + exit; +} + +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + $titre = $_POST['titre'] ?? ''; + $contenu = $_POST['contenu'] ?? ''; + if ($titre && $contenu) { + $stmt = $pdo->prepare("UPDATE articles SET titre=?, contenu=? WHERE id=?"); + $stmt->execute([$titre, $contenu, $id]); + echo "

Article mis à jour avec succès.

"; + } else { + echo "

Veuillez remplir tous les champs.

"; + } +} +?> + +

Modifier l'article

+
+
+

+
+

+ +
+ + diff --git a/public/index.php b/public/index.php new file mode 100644 index 0000000..dcd6b9b --- /dev/null +++ b/public/index.php @@ -0,0 +1,18 @@ +query("SELECT id, titre, SUBSTRING(contenu,1,150) AS extrait, date_creation + FROM articles ORDER BY date_creation DESC LIMIT 10"); +?> +

Derniers articles

+fetch()): ?> +
+

+

...

+ Publié le +
+
+ + + diff --git a/public/login.php b/public/login.php new file mode 100644 index 0000000..95567c1 --- /dev/null +++ b/public/login.php @@ -0,0 +1,34 @@ +prepare("SELECT * FROM utilisateur WHERE login = ?"); + $stmt->execute([$login]); + $user = $stmt->fetch(); + + if ($user && password_verify($password, $user['password'])) { + $_SESSION['user'] = $user['login']; + header("Location: admin.php"); + exit; + } else { + $error = "Identifiants incorrects"; + } +} +?> + +

Connexion administrateur

+$error

"; ?> +
+
+

+
+

+ +
+ + diff --git a/public/logout.php b/public/logout.php new file mode 100644 index 0000000..7649023 --- /dev/null +++ b/public/logout.php @@ -0,0 +1,5 @@ +