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

Langage PHP Discussion :

[Upload] Utilisation de unlink


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [Upload] Utilisation de unlink
    Bonjour,


    J'ai une page index, à la racine de mon site. (après le www).
    J'ai une page liste_news dans le dossier admin.
    Les photos des news s'enregistrent dans le dossier upload.

    Quand je veux supprimer une news, je souhaite que la photo correspondante à la news soit supprimée aussi. Pour cela, j'utilise un unlink. Dans ma BDD, l'information est de la photo est la suivante: ../upload/nom de la photo.

    J'ai utilisé ce code pour supprimer la photo:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	<?php $id_news = addslashes($_GET['supprimer_news']);
    	$unlink = $donnees['photo'];
    	mysql_query('DELETE FROM news WHERE id=\'' . $id_news . '\'');
    	mysql_query('DELETE FROM commentaires WHERE idnews=\'' . $id_news . '\'');
    	unlink($unlink);
    Malheursement, quand je clique sur supprimer, la news se supprime, mais pas la photo, et on m'affiche:


    Warning: unlink() [function.unlink]: No such file or directory in /home.52/l/i/v/site/www/admin/liste_news.php on line 117


    Quelqu'un a-t-il une idée de ce qui est mal codé ?

    Merci.

  2. #2
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Salut!

    • Le chemin est-il correcte ? Montre nous ce qu'affiche $unlink par exemple.
    • As-tu essayé chmod pour rédéfinir les droits avant la suppression ?

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Alors, quand j'affiche $donnees['photo'],
    j'ai son chemin:

    ../upload/imagetest.jpg


    Le dossier upload a un chmod de 777.


    Je devrai peut-être enlever ../upload/ par rien.

    Quelquechose comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    if (isset($_GET['supprimer_news']))
    {
    	$id_news = addslashes($_GET['supprimer_news']);
    	$unlink = $donnees['photo']
    	str_replace('../upload/', '', $donnees['photo']);
    	mysql_query('DELETE FROM news WHERE id=\'' . $id_news . '\'');
    	mysql_query('DELETE FROM commentaires WHERE idnews=\'' . $id_news . '\'');
    	unlink('../upload/'.$donnees['photo'].'')

    Mais ce code ne fonctionne pas, on m'affiche:

    Parse error: syntax error, unexpected T_STRING in /home.52/l/i/v/liveusa/www/admin/liste_news.php on line 115

    La ligne 115, c'est: str_replace('../upload/', '', $donnees['photo']);

  4. #4
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Essaye de remplacer "../upload/" par "./upload/".

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Voila, j'ai rechangé deux trois trucs, ça donne ce code là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    if (isset($_GET['supprimer_news']))
    {
    	$id_news = addslashes($_GET['supprimer_news']);
    	$photo_remplace = str_replace('../upload/', '', $donnees['photo']);
    	mysql_query('DELETE FROM news WHERE id=\'' . $id_news . '\'');
    	mysql_query('DELETE FROM commentaires WHERE idnews=\'' . $id_news . '\'');
    	unlink('./upload/'.$photo_remplace.'');


    Et on m'affiche:

    Warning: unlink(./upload/) [function.unlink]: No such file or directory in /home.52/l/i/v/liveusa/www/admin/liste_news.php on line 117

  6. #6
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    • Met le chemin dans une variable :• Et teste l'existence de ton dossier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(!is_dir($dir)){
      Die('Le dossier «'.$dir.'» est introuvable !');
    }
    • Une fois le dossier trouvé, ajoute un test d'existence du fichier avant de lancer sa suppression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(file_exists($dir.$photo_remplace)){
      unlink($dir.$photo_remplace);
    }
    Si pas plus de progrès, arriverais-tu à afficher l'une de ces images avec PHP ?
    Si oui, quel est le chemin donné dans le navigateur ?

Discussions similaires

  1. [Upload] Utilisation de la fonction move_uploaded_file
    Par lebordelais39 dans le forum Langage
    Réponses: 2
    Dernier message: 18/06/2008, 11h31
  2. Réponses: 3
    Dernier message: 21/12/2007, 18h34
  3. [Upload] Utiliser le composant FILE
    Par Sytchev3 dans le forum Langage
    Réponses: 7
    Dernier message: 09/11/2007, 12h58
  4. Réponses: 6
    Dernier message: 15/03/2007, 18h54
  5. [Upload] Utilisation de move_uploaded_file
    Par dldstyle dans le forum Langage
    Réponses: 6
    Dernier message: 29/01/2007, 11h19

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