Tp php blog
Thème :
Junior
1 vues ·19/20 leçons

Page 19 : Suppression d’un Article - Découpage Pédagogique

La suppression est une action “chirurgicale”. Voici comment nous organisons admin-delete-article.php.

Étape 1 : Validation de l’ID

On ne supprime pas n’importe quoi. On valide l’entrée.

$id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);

if ($id === false) {
    header("Location: admin-list-article.php?error=ID_invalide");
    exit();
}

Étape 2 : Récupération du chemin de l’image

Pour ne pas laisser d’image “orpheline” sur le serveur, nous devons savoir si l’article en possède une.

$query = $pdo->prepare('SELECT image FROM articles WHERE id = :id');
$query->execute(['id' => $id]);
$article = $query->fetch();

Étape 3 : Suppression physique de l’image

Si l’article avait une image, on l’efface du disque dur.

if (!empty($article['image']) && file_exists($article['image'])) {
    unlink($article['image']);
}
  • Analyse : unlink() supprime le fichier. file_exists() est une sécurité pour éviter une erreur si le fichier a déjà été supprimé manuellement.

Étape 4 : Suppression en base de données

Maintenant que le fichier est parti, on supprime la ligne dans SQL.

$delete = $pdo->prepare('DELETE FROM articles WHERE id = :id');
$delete->execute(['id' => $id]);

Étape 5 : Confirmation et Redirection

On informe l’utilisateur que tout s’est bien passé.

if ($delete->rowCount() > 0) {
    $_SESSION['success']['update'] = 'L\'article et son image ont été supprimés !';
}

header('Location: admin-list-article.php');
exit();

Le conseil du Senior :

Bien que nous utilisions un lien direct pour supprimer dans ce cours, apprenez que c’est une pratique risquée. Dans un projet réel, on utilise un formulaire avec une requête POST et un token de sécurité (CSRF) pour éviter qu’un pirate ne puisse déclencher la suppression à distance via un simple lien caché dans un email.

Prêt à passer à la suite ?

Vous avez terminé cette leçon sur Page 19 : Suppression d'un Article - Découpage Pédagogique. Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.