Eléphanteau du PHP |
13 Messages
21 mars 2022, 14:58
Bonjour, Je m'explique :
le but est de supprimer l'enregistrement si le fichier est supprimer.
Rien ne se passe, même pas de message d'erreur ou de succès.
Besoin d'aide, merci d'avance & bonne après-midi.
class/imageManager.php
class imageManager {
private $db;
public function __construct($db) {
$this->setDb($db);
}
public function setDb(PDO $dbh) {
return $this->db = $dbh;
}
public function deleteImageData($filename) {
$filename = $_GET['filename'];
try {
$sql = 'DELETE FROM images WHERE filename = :filename';
$stmnt = $this->db->prepare($sql);
$stmnt->bindParam(':filename', $filename);
$stmnt->execute();
$count = $stmnt->rowCount();
return $count;
}
catch(PDOException $e) {
echo 'Une erreur est survenue lors de la suppression des données dans la base.<br>
Message d\'erreur : ' . $e->getMessage();
}
}
public function deleteFileImage($filename) {
// Suppression des fichiers : images et vignettes
$path_images = IMAGE_DIR_PATH . $filename;
$path_thumbs = THUMB_DIR_PATH . $filename;
if(file_exists($path_images)) {
if(!unlink($path_images)) {
$msg_error[] = 'Une erreur est survenue lors de la supression du fichier image.';
}
}
else {
$msg_error[] = 'Le fichier image n\'existe pas.';
}
if(file_exists($path_thumbs)) {
if(!unlink($path_thumbs)) {
$msg_error[] = 'Une erreur est survenue lors de la supression du fichier vignette.';
}
}
else {
$msg_error[] = 'Le fichier vignette n\'existe pas.';
}
if(isset($msg_error)) {
$msg_error = implode (' ', $msg_error);
return $msg_error;
}
else {
return true;
}
}
}
process/process-delete-image.php
if(isset($_GET['filename'])) {
$filename = $_GET['filename'];
$manager = new imageManager($db);
$deleteImageData = $manager->deleteImageData($filename);
if(true === $deleteImageData) {
$manager->deleteFileImage($filename);
$msg_success = 'Le fichier a bien été supprimé.';
}
else {
$msg_error = $deleteImageData;
}
}
admin/delete-image.php
require('../include/inc-connexion.php');
require('../include/inc-config.php');
require('../class/imageManager.php');
require('../process/process-delete-image.php');
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Suppression d'image</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div id="wrapper">
<h1>suppression d'image</h1>
if(isset($msg_error)) echo $msg_error
if(isset($msg_success)) echo $msg_success
</div>
</body>
</html>