prepare("SELECT id, user_id, titre, contenu FROM articles WHERE id = :id"); $stmt->execute(['id'=>$id]); $article = $stmt->fetch(); if (!$article) { header('Location: /admin/dashboard.php'); exit; } // Vérifie les droits : admin ou auteur de l'article if (!is_admin() && (int)$article['user_id'] !== current_user_id()) { http_response_code(403); // interdit echo "

Accès refusé.

"; exit; } // Gestion du formulaire d'édition $errors = []; if ($_SERVER['REQUEST_METHOD'] === 'POST') { verify_csrf(); // protège contre les attaques CSRF // Nettoyage et validation des champs $titre = trim($_POST['titre'] ?? ''); $contenu = trim($_POST['contenu'] ?? ''); if ($titre === '' || $contenu === '') { $errors[] = "Tous les champs sont obligatoires."; } // Si ok, mise à jour de l'article en BDD if (!$errors) { $stmt = $pdo->prepare("UPDATE articles SET titre=:titre, contenu=:contenu WHERE id=:id"); $stmt->execute(['titre'=>$titre,'contenu'=>$contenu,'id'=>$id]); // Retour au tableau de bord après sauvegarde header('Location: /admin/dashboard.php'); exit; } } // Affichage de la page (header + formulaire + footer) require_once __DIR__ . '/../inc/header.php'; ?>

Modifier l'article #

Annuler