diff --git a/article.php b/article.php
new file mode 100644
index 0000000..e029876
--- /dev/null
+++ b/article.php
@@ -0,0 +1,26 @@
+404 - Article non trouvé";
+ require_once __DIR__ . '/includes/footer.php';
+ exit;
+}
+
+$id = (int) $_GET['id'];
+$stmt = $pdo->prepare("SELECT * FROM articles WHERE id = ?");
+$stmt->execute([$id]);
+$article = $stmt->fetch();
+
+if (!$article) {
+ http_response_code(404);
+ echo "
404 - Article non trouvé
";
+} else {
+ echo "{$article['titre']}
";
+ echo "{$article['contenu']}
";
+ echo "Publié le {$article['date_creation']}";
+}
+
+require_once __DIR__ . '/includes/footer.php';
diff --git a/css/style.css b/css/style.css
new file mode 100644
index 0000000..b0c70e7
--- /dev/null
+++ b/css/style.css
@@ -0,0 +1,22 @@
+body {
+ font-family: Arial, sans-serif;
+ margin: 40px;
+ background: #f9f9f9;
+ color: #333;
+}
+header, footer {
+ text-align: center;
+ margin-bottom: 20px;
+}
+a {
+ color: #007bff;
+ text-decoration: none;
+}
+a:hover {
+ text-decoration: underline;
+}
+form input, form textarea {
+ width: 100%;
+ padding: 8px;
+ margin-top: 5px;
+}
diff --git a/dashboard.php b/dashboard.php
new file mode 100644
index 0000000..5d6182e
--- /dev/null
+++ b/dashboard.php
@@ -0,0 +1,26 @@
+Bienvenue, {$_SESSION['user']} !";
+echo "➕ Ajouter un article | 🚪 Déconnexion
";
+
+$stmt = $pdo->query("SELECT * FROM articles ORDER BY date_creation DESC");
+echo "Vos articles :
";
+echo "";
+while ($row = $stmt->fetch()) {
+ echo "-
+ {$row['titre']}
+ [Modifier]
+ [Supprimer]
+
";
+}
+echo "
";
+
+require_once __DIR__ . '/includes/footer.php';
diff --git a/docker-compose.yaml b/docker-compose.yaml
new file mode 100644
index 0000000..29c330b
--- /dev/null
+++ b/docker-compose.yaml
@@ -0,0 +1,35 @@
+version: "3.8"
+
+services:
+ db:
+ image: mysql:8.0
+ container_name: cms_db
+ restart: unless-stopped
+ environment:
+ MYSQL_ROOT_PASSWORD: rootpassword
+ MYSQL_DATABASE: cms
+ MYSQL_USER: cmsuser
+ MYSQL_PASSWORD: cmspassword
+ volumes:
+ - db_data:/var/lib/mysql
+ - ./sql:/docker-entrypoint-initdb.d:ro # exécutera les .sql à l'initialisation
+ ports:
+ - "3306:3306"
+
+ web:
+ image: php:8.2-apache
+ container_name: cms_web
+ depends_on:
+ - db
+ volumes:
+ - ./src:/var/www/html
+ ports:
+ - "8080:80"
+ environment:
+ DB_HOST: db
+ DB_NAME: cms
+ DB_USER: cmsuser
+ DB_PASS: cmspassword
+
+volumes:
+ db_data:
diff --git a/index.php b/index.php
new file mode 100644
index 0000000..519f240
--- /dev/null
+++ b/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");
+
+echo "Derniers articles
";
+
+while ($row = $stmt->fetch()) {
+ echo "";
+ echo "";
+ echo "{$row['extrait']}...
";
+ echo "Publié le {$row['date_creation']}";
+ echo "
";
+}
+
+require_once __DIR__ . '/includes/footer.php';
diff --git a/login.php b/login.php
new file mode 100644
index 0000000..409c8db
--- /dev/null
+++ b/login.php
@@ -0,0 +1,35 @@
+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: dashboard.php");
+ exit;
+ } else {
+ echo "Identifiants incorrects
";
+ }
+}
+?>
+
+Connexion administrateur
+
+
+
diff --git a/logout.php b/logout.php
new file mode 100644
index 0000000..7649023
--- /dev/null
+++ b/logout.php
@@ -0,0 +1,5 @@
+prepare("UPDATE articles SET titre=?, contenu=? WHERE id=?");
+ $stmt->execute([$titre, $contenu, $id]);
+ echo "✅ Article mis à jour !
";
+}
+
+$stmt = $pdo->prepare("SELECT * FROM articles WHERE id=?");
+$stmt->execute([$id]);
+$article = $stmt->fetch();
+?>
+
+Modifier un article
+
+
+
diff --git a/src/ajouter.php b/src/ajouter.php
new file mode 100644
index 0000000..a976a38
--- /dev/null
+++ b/src/ajouter.php
@@ -0,0 +1,29 @@
+prepare("INSERT INTO articles (titre, contenu, date_creation) VALUES (?, ?, NOW())");
+ $stmt->execute([$titre, $contenu]);
+ echo "✅ Article ajouté !
";
+}
+?>
+
+Ajouter un article
+
+
+
diff --git a/src/includes/db.php b/src/includes/db.php
new file mode 100644
index 0000000..db44c87
--- /dev/null
+++ b/src/includes/db.php
@@ -0,0 +1,23 @@
+ PDO::ERRMODE_EXCEPTION,
+ PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
+];
+
+try {
+ $pdo = new PDO($dsn, $user, $pass, $options);
+ // echo "Connexion réussie !"; // tu peux tester si tu veux
+} catch (PDOException $e) {
+ die("Erreur de connexion : " . $e->getMessage());
+}
diff --git a/src/includes/footer.php b/src/includes/footer.php
new file mode 100644
index 0000000..7ba0fbf
--- /dev/null
+++ b/src/includes/footer.php
@@ -0,0 +1,6 @@
+
+
+