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 "
";
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 #= (int)$article['id'] ?>