91 lines
2.3 KiB
PHP
91 lines
2.3 KiB
PHP
<?php
|
|
// Page pour modifier un article existant
|
|
|
|
require '../include/auth.php';
|
|
require '../include/db.php';
|
|
|
|
requireLogin(); // Vérifie que l'utilisateur est connecté
|
|
|
|
// Récupération de l'id de l'article depuis l'URL
|
|
$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
|
|
|
|
// Si l'id n'est pas valide, retour au tableau de bord
|
|
if ($id <= 0) {
|
|
header('Location: board.php');
|
|
exit;
|
|
}
|
|
|
|
// Récupération de l'article
|
|
$stmt = $pdo->prepare('SELECT * FROM articles WHERE id = :id');
|
|
$stmt->execute([':id' => $id]);
|
|
$article = $stmt->fetch();
|
|
|
|
// Si l'article n'existe pas, retour au tableau de bord
|
|
if (!$article) {
|
|
header('Location: board.php');
|
|
exit;
|
|
}
|
|
|
|
$errors = [];
|
|
$titre = $article['titre'];
|
|
$contenu = $article['contenu'];
|
|
|
|
// Traitement du formulaire à la soumission
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
$titre = trim($_POST['titre'] ?? '');
|
|
$contenu = trim($_POST['contenu'] ?? '');
|
|
|
|
// Vérification des champs obligatoires
|
|
if ($titre === '' || $contenu === '') {
|
|
$errors[] = 'Tous les champs sont obligatoires.';
|
|
} else {
|
|
// Mise à jour sécurisée dans la base de données
|
|
$stmt = $pdo->prepare(
|
|
'UPDATE articles SET titre = :titre, contenu = :contenu WHERE id = :id'
|
|
);
|
|
$stmt->execute([
|
|
':titre' => $titre,
|
|
':contenu' => $contenu,
|
|
':id' => $id
|
|
]);
|
|
|
|
// Redirection vers le tableau de bord après modification
|
|
header('Location: board.php');
|
|
exit;
|
|
}
|
|
}
|
|
?>
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="fr">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Modifier l'article</title>
|
|
<link rel="stylesheet" href="stylemodif.css">
|
|
</head>
|
|
<body>
|
|
|
|
<h1>Modifier l'article</h1>
|
|
|
|
<!-- Affichage des erreurs -->
|
|
<?php foreach ($errors as $e): ?>
|
|
<p class="error"><?= htmlspecialchars($e) ?></p>
|
|
<?php endforeach; ?>
|
|
|
|
<!-- Formulaire de modification -->
|
|
<form method="post">
|
|
<label>Titre<br>
|
|
<input type="text" name="titre" value="<?= htmlspecialchars($titre) ?>" required>
|
|
</label>
|
|
|
|
<label>Contenu<br>
|
|
<textarea name="contenu" rows="10" required><?= htmlspecialchars($contenu) ?></textarea>
|
|
</label>
|
|
|
|
<button type="submit">Enregistrer</button>
|
|
<a href="board.php">Annuler</a>
|
|
</form>
|
|
|
|
</body>
|
|
</html>
|