Salut,
Je travaille sur le back-office d'un site web auquel j'ai implémenter un module pour la gestion des albums photos. En effet, je souhaite permettre à l'utilisateur finale de supprimer un album photo de la base données et par la même occasion effacer les fichiers photos qui y sont rattachés, en appuyant sur un bouton. Pour cela, j'ai écris un bout de code qui fonctionne correctement pour le module de news mais qui pose problème pour les albums photos. Car contrairement aux articles de news qui n'ont qu'une image chacun, un album photo contient plusieurs images rattachées.
voici le bout de code que j'utilise pour les news
/**
* SUPPRESSION
**/
if(isset($_GET['supprimer'])){
checkCsrf();
$id = $db->quote($_GET['supprimer']);
$select = $db->query("SELECT image FROM articles WHERE id=$id");
$image = $select->fetch();
$images = glob(IMAGES . '/articles/' .pathinfo($image['image'], PATHINFO_FILENAME) . '_*x*.*');
if (is_array($images)) {
foreach ($images as $v) {
unlink($v);
}
}
unlink(IMAGES . '/articles/' . $image['image']);
$db->query("DELETE FROM articles WHERE id=$id");
setFlash('Article supprimé avec succès', 'info');
header('Location:articles.php');
die();
}
et celui que j'ai essayé d'utiliser pour les albums mais qui me renvoie un message d'erreur, comme quoi la variable 'nom' n'existe pas
if(isset($_GET['supprimer'])){
checkCsrf();
$id = $db->quote($_GET['supprimer']);
$select = $db->query("SELECT nom FROM images_reportages WHERE id_reportage=$id");
$image = $select->fetchAll();
$images = glob(IMAGES . '/publi-reportages/' .pathinfo($image['nom'], PATHINFO_FILENAME) . '_*x*.*');
if (is_array($images)) {
foreach ($images as $v) {
unlink($v);
}
}
unlink(IMAGES . '/publi-reportages/' . $image['image']);
$db->query("DELETE FROM publi_reportages WHERE id=$id");
setFlash('Elément supprimé avec succès', 'info');
header('Location:publi_reportages.php');
die();
}
Quelqu'un voudrait-il m'aider à résoudre mon problème? Merci!
Modifié par Smokee (16 Jul 2014 - 21:19)
Je travaille sur le back-office d'un site web auquel j'ai implémenter un module pour la gestion des albums photos. En effet, je souhaite permettre à l'utilisateur finale de supprimer un album photo de la base données et par la même occasion effacer les fichiers photos qui y sont rattachés, en appuyant sur un bouton. Pour cela, j'ai écris un bout de code qui fonctionne correctement pour le module de news mais qui pose problème pour les albums photos. Car contrairement aux articles de news qui n'ont qu'une image chacun, un album photo contient plusieurs images rattachées.
voici le bout de code que j'utilise pour les news
/**
* SUPPRESSION
**/
if(isset($_GET['supprimer'])){
checkCsrf();
$id = $db->quote($_GET['supprimer']);
$select = $db->query("SELECT image FROM articles WHERE id=$id");
$image = $select->fetch();
$images = glob(IMAGES . '/articles/' .pathinfo($image['image'], PATHINFO_FILENAME) . '_*x*.*');
if (is_array($images)) {
foreach ($images as $v) {
unlink($v);
}
}
unlink(IMAGES . '/articles/' . $image['image']);
$db->query("DELETE FROM articles WHERE id=$id");
setFlash('Article supprimé avec succès', 'info');
header('Location:articles.php');
die();
}
et celui que j'ai essayé d'utiliser pour les albums mais qui me renvoie un message d'erreur, comme quoi la variable 'nom' n'existe pas
if(isset($_GET['supprimer'])){
checkCsrf();
$id = $db->quote($_GET['supprimer']);
$select = $db->query("SELECT nom FROM images_reportages WHERE id_reportage=$id");
$image = $select->fetchAll();
$images = glob(IMAGES . '/publi-reportages/' .pathinfo($image['nom'], PATHINFO_FILENAME) . '_*x*.*');
if (is_array($images)) {
foreach ($images as $v) {
unlink($v);
}
}
unlink(IMAGES . '/publi-reportages/' . $image['image']);
$db->query("DELETE FROM publi_reportages WHERE id=$id");
setFlash('Elément supprimé avec succès', 'info');
header('Location:publi_reportages.php');
die();
}
Quelqu'un voudrait-il m'aider à résoudre mon problème? Merci!
Modifié par Smokee (16 Jul 2014 - 21:19)