Bonjour,
Je m'explique sur un petit problème que je rencontre et qui me freine dans mon projet ^^
J'ai sur mon site la possibilité d'ajouter des logiciels, afin d'en expliquer le fonctionnement jusque la tous va pour le mieux tant pour l'ajout que l'édition de ces derniers, de ce coté aucun problème non, seulement voila lorsque je supprime un logiciel je voudrai que son homologue physique (image hébergée sur le serveur soit également effacée ).
C'est là que les problèmes surviennent x)
Il m'efface tout le contenu des répertoires ( ce que je ne veux absolument pas ) !
Voici le code pour supprimer un logiciel( avec l'appel de la fonction de suppression d'image ) :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 /** * Effacer un software */ public static function delSoft() { if(isset($_GET['delete'])){ if(Membre::checkCsrf()){ $id = Bdd::connectBdd()->quote($_GET['delete']); $sql = Bdd::connectBdd()->prepare("DELETE FROM logiciels WHERE id=$id"); $sql -> bindParam(':id',$id, PDO::PARAM_INT ); $sql -> execute(); if ($sql) { Bdd::connectBdd()->query("DELETE FROM imgSofts WHERE id=$id"); ManagerSite::delImg(); } } redirection('administration'); } } /** * Fonction traitant un dossier pour la suppression d'image ou vignette */ public static function delImg() { $dossier_vignette = "../img/fuv_/categories"; $dossier_grande_image = "../img/fuv_/img_logiciels_hi"; $repertoire = opendir($dossier_vignette); // On définit le répertoire dans lequel on souhaite effacé les vignette ! $repertoire2 = opendir($dossier_grande_image); // On définit le répertoire dans lequel on souhaite effacé les vignette ! while (false !== ($fichier = readdir($repertoire))) { // On lit chaque fichier du répertoire dans la boucle. $chemin = $dossier_vignette . "/" . $fichier; // On définit le chemin du fichier à effacer. // Si le fichier n'est pas un répertoire... if ($fichier != ".." AND $fichier != "." AND !is_dir($fichier)) { unlink($chemin); // On ferme le dossier vignette } } while (false !== ($fichier2 = readdir($repertoire2))) { // On lit chaque fichier du répertoire dans la boucle. $chemin2 = $dossier_grande_image . "/" . $fichier2; // On définit le chemin du fichier à effacer. // Si le fichier n'est pas un répertoire... if ($fichier2 != ".." AND $fichier2 != "." AND !is_dir($fichier2)) { unlink($chemin2); // On ferme le dossier vignette } } closedir($repertoire); closedir($repertoire2); }
J'aimerai vraiment qu'il efface chaque image en fonction de son id , je pense qu'il faudrai faire une fonction avec requete sql mais je vois pas comment structuré cela, de manière logique je ne suis pas un super génie du code je débute même, si quelqu'un pouvait m'aidé je lui en serai grandement reconnaissant x)
Partager