first commit

This commit is contained in:
2025-11-02 19:42:11 +01:00
commit a6995fbab5
15 changed files with 471 additions and 0 deletions

49
admin/add_article.php Normal file
View File

@@ -0,0 +1,49 @@
<?php
session_start();
require '../includes/db.php';
if (!isset($_SESSION['user_id'])) {
header('Location: login.php');
exit;
}
$message = '';
if (isset($_POST['titre']) && isset($_POST['contenu'])) {
$titre = $_POST['titre'];
$contenu = $_POST['contenu'];
$sql = "INSERT INTO articles (titre, contenu, date_creation) VALUES (:titre, :contenu, NOW())";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':titre', $titre);
$stmt->bindParam(':contenu', $contenu);
if ($stmt->execute()) {
$message = "Article ajouté avec succès !";
} else {
$message = "Erreur lors de l'ajout de l'article.";
}
}
require '../includes/header.php';
?>
<main>
<h2>Ajouter un article</h2>
<?php if($message) echo '<p>'.$message.'</p>'; ?>
<form method="POST">
<label>Titre :</label><br>
<input type="text" name="titre" required><br><br>
<label>Contenu :</label><br>
<textarea name="contenu" rows="10" cols="50" required></textarea><br><br>
<button type="submit">Ajouter</button>
</form>
</main>
<?php
require '../includes/footer.php';
?>

27
admin/dashboard.php Normal file
View File

@@ -0,0 +1,27 @@
<?php
session_start();
require '../includes/db.php';
if (!isset($_SESSION['user_id'])) {
header('Location: login.php');
exit;
}
require '../includes/header.php';
?>
<main>
<h2>Tableau de bord</h2>
<p>Bienvenue, <?= htmlspecialchars($_SESSION['user_login']); ?> !</p>
<ul>
<li><a href="add_article.php">Ajouter un article</a></li>
<li><a href="edit_article.php">Modifier un article</a></li>
<li><a href="delete_article.php">Supprimer un article</a></li>
<li><a href="logout.php">Se déconnecter</a></li>
</ul>
</main>
<?php
require '../includes/footer.php';
?>

61
admin/delete_article.php Normal file
View File

@@ -0,0 +1,61 @@
<?php
session_start();
require '../includes/db.php';
if (!isset($_SESSION['user_id'])) {
header('Location: login.php');
exit;
}
$message = '';
$article = null;
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
$id = $_GET['id'];
$sql = "SELECT * FROM articles WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
$article = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$article) {
die("Article introuvable.");
}
}
if (isset($_POST['confirm']) && $_POST['confirm'] === 'Oui') {
$sql = "DELETE FROM articles WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
if ($stmt->execute()) {
$message = "Article supprimé avec succès !";
$article = null;
} else {
$message = "Erreur lors de la suppression.";
}
}
require '../includes/header.php';
?>
<main>
<h2>Supprimer un article</h2>
<?php if($message) echo '<p>'.$message.'</p>'; ?>
<?php if($article): ?>
<p>Voulez-vous vraiment supprimer l'article : "<strong><?= htmlspecialchars($article['titre']) ?></strong>" ?</p>
<form method="POST">
<button type="submit" name="confirm" value="Oui">Oui</button>
<button type="submit" name="confirm" value="Non">Non</button>
</form>
<?php else: ?>
<p>Aucun article sélectionné ou article déjà supprimé.</p>
<?php endif; ?>
</main>
<?php
require '../includes/footer.php';
?>

73
admin/edit_article.php Normal file
View File

@@ -0,0 +1,73 @@
<?php
session_start();
require '../includes/db.php';
if (!isset($_SESSION['user_id'])) {
header('Location: login.php');
exit;
}
$message = '';
$article = null;
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
$id = $_GET['id'];
$sql = "SELECT * FROM articles WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
$article = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$article) {
die("Article introuvable.");
}
}
if (isset($_POST['titre']) && isset($_POST['contenu'])) {
$titre = $_POST['titre'];
$contenu = $_POST['contenu'];
$sql = "UPDATE articles SET titre = :titre, contenu = :contenu WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':titre', $titre);
$stmt->bindParam(':contenu', $contenu);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
if ($stmt->execute()) {
$message = "Article modifié avec succès !";
$stmt = $pdo->prepare("SELECT * FROM articles WHERE id = :id");
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
$article = $stmt->fetch(PDO::FETCH_ASSOC);
} else {
$message = "Erreur lors de la modification.";
}
}
require '../includes/header.php';
?>
<main>
<h2>Modifier un article</h2>
<?php if($message) echo '<p>'.$message.'</p>'; ?>
<?php if($article): ?>
<form method="POST">
<label>Titre :</label><br>
<input type="text" name="titre" value="<?= htmlspecialchars($article['titre']) ?>" required><br><br>
<label>Contenu :</label><br>
<textarea name="contenu" rows="10" cols="50" required><?= htmlspecialchars($article['contenu']) ?></textarea><br><br>
<button type="submit">Modifier</button>
</form>
<?php else: ?>
<p>Aucun article sélectionné.</p>
<?php endif; ?>
</main>
<?php
require '../includes/footer.php';
?>

47
admin/login.php Normal file
View File

@@ -0,0 +1,47 @@
<?php
session_start();
require '../includes/db.php';
if (isset($_POST['login']) && isset($_POST['password'])) {
$login = $_POST['login'];
$password = $_POST['password'];
$sql = "SELECT * FROM utilisateur WHERE login = :login";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':login', $login);
$stmt->execute();
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if ($user && password_verify($password, $user['password'])) {
$_SESSION['user_id'] = $user['id'];
$_SESSION['user_login'] = $user['login'];
header('Location: dashboard.php');
exit;
} else {
$error = "Identifiants incorrects.";
}
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Connexion Admin</title>
<link rel="stylesheet" href="../assets/css/style.css">
</head>
<body>
<h2>Connexion Administration</h2>
<?php if(isset($error)) echo '<p style="color:red;">'.$error.'</p>'; ?>
<form method="POST">
<label>Login :</label><br>
<input type="text" name="login" required><br><br>
<label>Mot de passe :</label><br>
<input type="password" name="password" required><br><br>
<button type="submit">Se connecter</button>
</form>
</body>
</html>

10
admin/logout.php Normal file
View File

@@ -0,0 +1,10 @@
<?php
session_start();
$_SESSION = [];
session_destroy();
header('Location: login.php');
exit;
?>