Bonjour,

Je souhaiterais pouvoir faire une suppression automatique d'un fichier en php. Je fais un module de news, et si je modifie l'image de cette news, je voudrais pouvoir supprimer celle qui existait déjà de mes dossiers.

Voici le code qui permettrait de traiter cela :

Code : 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
<?php $id = $_POST["id"];
			$ancien_fichier = mysql_query("SELECT image FROM news WHERE id=$id");
			$result = mysql_query($ancien_fichier);
 
			unlink('../../images/news/'.$result.''); 
 
			$nomFichier2 = $_FILES['Fichier']['name'];
			$cheminFichier2 = $_FILES['Fichier']['tmp_name'];
			// Création d'un nom unique avec time()
			// Récupération du seul nom de fichier avec basename()
			$nouveauNom2 = time() . "-" . basename($nomFichier2);
			$nouveauFichier2 = REPERTOIRE_DEPOT . SEPARATEUR_FICHIERS . $nouveauNom2;
			if (file_exists($nouveauFichier2)) {
				die ('Le fichier existe déjà !');
			}
			// déplacement du fichier dans le répertoire dépôt
			if (move_uploaded_file($cheminFichier2, $nouveauFichier2)) {
				echo "";	
			}
			else {
				echo "Erreur au versement du fichier $nomFichier2 !";	
			}
 
        // On protège la variable "id_news" pour éviter une faille SQL
        $_POST['id_news'] = addslashes($_POST['id_news']);
        // C'est une modification, on met juste à jour le titre et le contenu
        mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "', image='" . $nouveauNom2 . "' WHERE id='" . $_POST['id_news'] . "'");?>
et l'erreur que ca me renvoit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Warning: unlink(../../images/news/) [function.unlink]: Permission denied in C:\wamp\www\Blog\pages\admin\cgi_news.php on line 50
Je ne comprends pas trop le bug, j'ajoute également que quand j'essaie de faire un echo de $ancien_fichier, ça me renvoie comme erreur : "Resource id #5"...