IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Suppression d'un fichier en php [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 29
    Par défaut Suppression d'un fichier en php
    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"...

  2. #2
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 93
    Par défaut
    $ancien_fichier = mysql_query("SELECT image FROM news WHERE id=$id");
    $result = mysql_query($ancien_fichier);


    A mon avis la seconde ligne ne veut rien dire...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 29
    Par défaut
    Et ?...

    Je me doute bien que j'ai des erreurs à ce niveau là... Je dirais que ce qui bloque c'est le "resource id#5" et la fonction unlink pose problème aussi...

  4. #4
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 93
    Par défaut
    Citation Envoyé par HekThor Voir le message
    Et ?...

    Je me doute bien que j'ai des erreurs à ce niveau là... Je dirais que ce qui bloque c'est le "resource id#5" et la fonction unlink pose problème aussi...
    Et? Ben rien... C'est toi qui a un problème hein...
    Alors moi je te signale déjà un truc qui au mieux est inutile et au pire est une erreur, après, libre à toi de chercher dans des cours comment la corriger...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 29
    Par défaut
    C'est trouvé, le code devait en fait se formuler ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    			$ancien_fichier = mysql_query("SELECT image FROM news WHERE id=$id");
    			$result = mysql_fetch_array($ancien_fichier);
    			echo $result['image'];
    Merci !

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 122
    Par défaut
    Soit tu fais ta requête de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ancien_fichier = mysql_query("SELECT image FROM news WHERE id=$id");
    Soit de celle là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $ancien_fichier = "SELECT image FROM news WHERE id=$id";
    $result = mysql_query($ancien_fichier);
    Mais un mix des deux ne veux rien dire.

    En plus avec la deuxième solution, tu peux tester ta requête en faisant :
    En ce qui concerne ton erreur sur le unlink(), vérifie les droits d'accès au dossier ou est stocké le fichier à supprimer. Et vérifie aussi ton chemin d'accès.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fichier batch + php
    Par zorian dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 27/04/2004, 11h40
  2. Réponses: 4
    Dernier message: 22/12/2003, 11h12
  3. Réponses: 8
    Dernier message: 14/11/2003, 22h51
  4. Réponses: 2
    Dernier message: 11/08/2003, 13h43
  5. [LG]suppression dans un fichier
    Par cedrick essale dans le forum Langage
    Réponses: 5
    Dernier message: 10/08/2003, 15h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo