Supression de fichier en PHP avec unlink(URL)

Résolu
-CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   -  
-CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, m'etant renseigner sur la supression de fichier en php, j'utilise la fonction unlink(chemin) :

Voici mon code :

 $query = "SELECT *  FROM docs WHERE id = ".$id;
  $result = mysql_query($query, $cnx);
  while($row = mysql_fetch_row($result))
  {
  $id     	= $row[0];
  $type 	= $row[1];
  $url	 = $row[4];
  
  //$lien="/docs/$type/$url";
  //$lien="C:\Program Files\EasyPHP 2.0b1\www\docs\Référentiels\Copie.doc";
    $lien="..\docs\Référentiels\Copie.doc";
    unlink('$lien');
  echo"lien $lien"; 


dans les trois cas de $lien j'ai le droit à un

Warning: unlink($lien) [function.unlink]: No such file or directory in C:\blablabla\sitelocale\reblablabla

Alors que mon echo affiche a chaque fois le bon ien avec l'extension du fichier...
D'ou sa proviendrais?
Configuration: Windows 3.1.2 workstation edition
Netscape 0.2

14 réponses

  1. croy Messages postés 457 Statut Membre 114
     
    if( file-exists( "../documents/$dossier/$dossier2" ) )
       unlink( "../documents/$dossier/$dossier2" ); 
    else
       echo "ce fichier n'existe pas";
    
    6
  2. -CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   84
     
    Salut croy, merci a toi.
    C'est exactement ce qu'il me fallait.

    Mais avec un '_' au lieu du '-' file_exists.

    C'est pratique comme fonction ;)

    Merci, j'attaque le reste maintenant !! je n'arrive pas a parser une infos et d'autres petit soucis...

    A+
    3
  3. croy Messages postés 457 Statut Membre 114
     
    Essaye avec un chemin complet :
    unlink( "C:\Program Files\EasyPHP 2.0b1\www\doss\text.txt" );
    
    1
  4. -CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   84
     
    en dur unlink( "C:\Program Files\EasyPHP 2.0b1\www\doss\text.txt" ); sa marche nickel par contre il n'aime pas les antislash, car au lieu de lire \texte il l'interprete comme "\t" +"exte".

    Maintenant je n'ai plus qu'a travailler tout sa pour rendre mes liens dynamiques...
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. -CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   84
     
    J'ai remit mes liens mes variables et la supression des documents hors de mon repertoires se passe a merveille ...

    voici mon code

    unlink( "../docs/$type/$url" );


    Merci pour votre aide et votre patience
    1
  7. -CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   84
     
    je remonte un peu ce post.....

    si un fichier est supprimé et je redemande la supression ... (enregistrement dans la base toujours present mais le fichiers n'existe plus)

    j'ai l'erreur :

    Warning: unlink(../dossier/dossier2/document_word.doc) [function.unlink]: No such file or directory in C:\Program Files\EasyPHP 2.0b1\www\fonctions\suppr.php on line 127


    j'essai de contourner cette erreur avec un :

    // suppression du document
    unlink( "../documents/$dossier/$dossier2" );
    if (unlink = false)
    echo "<script>alert('Le document n'existe plus');</script>";


    Sa ne marche pas (la comparaison est foireuse)
    Comment réaliser cette fonction svp ?
    Merci
    1
  8. -CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   84
     
    je relance donc, je n'ai pas trouver comment exploiter le "false"
    1
  9. arthezius Messages postés 3756 Statut Membre 475
     
    Bonjour,

    Si ton fichier .doc est dans le même dossier que ta page avec ton code PHP, la ligne suivante est fausse:

    $lien="..\docs\Référentiels\Copie.doc";


    Dans ce cas il faudrai mettre:

    $lien="docs\Référentiels\Copie.doc";


    En fait ça dépends d'ou est ta page d'origine.
    Sinon, met :

    $lien="\docs\Référentiels\Copie.doc";


    Normalement il te renverra sur la racine et suivra l'ordre des dossiers du lien.
    0
  10. croy Messages postés 457 Statut Membre 114
     
    Remplace
    unlink('$lien');
    par
    unlink( $lien );
    0
    1. arthezius Messages postés 3756 Statut Membre 475
       
      son message disais qu'il ne trouvais pas la page, pas forcement que sa variable était incorrecte.

      No such file or directory in C:\blablabla\sitelocale\reblablabla 


      Lien est bien présent, donc la variable est correcte. Je pense que c'est le chemin qui ne l'est pas.
      -1
  11. croy Messages postés 457 Statut Membre 114
     
    Il reste que le code donné (unlink( '$lien' );) ne peut pas marcher et que c'est la première chose à modifier.
    0
  12. -CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   84
     
    Salut, le chemin est le bon, le document ne fait pas partie du répertoire ou il y a mon script php.

    Je ne comprends pas pourquoi le fichier ne s'efface pas. J'ai lu une cinquantaine de post et vu un peu de tout mais a chaque fois je n'arrive pas a supprimer mes fichiers...

    J'ai même vu un exemple qui à fonctionner pour un membre :

    $ouverture= opendir("../dossier2/dossier2");
    unlink("../dossier2/dossier2/test.jpg");
    closedir($ouverture); 


    Ce qui me donnerais par exemple avec des valeurs en dur :
    $ouverture= opendir("../docs");
    unlink("../docs/text.txt");
    closedir($ouverture); 


    Mais sa ne marche toujours pas.. :( étrange , très étrange même ...
    0
    1. arthezius Messages postés 3756 Statut Membre 475
       
      ça pourrai pas venir des fonctionnalités et extensions de PHP qui ne serai pas activé ??
      -1
  13. -CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   84
     
    J'ai rien trouver sur mon phpinfo.

    Quelles paramètres sont à verifier ?
    -1
  14. croy Messages postés 457 Statut Membre 114
     
    opendir / closedir n'a certainement rien à voir.

    Ma reco est de revenir à une approche méthodique et progressive :

    Commence par essayer un script avec le chemin vers le fichier à détruire en dur :

    1. crée un script avec unlink( "toto.txt" );
    2. dans le même dossier que ce script crée un fichier toto.txt avec n'importe quoi à l'intérieur
    3. exécute le script

    Qu'est-ce-que ça donne ? est-ce-que le fichier toto.txt est supprimé ? sinon quel message d'erreur (copié/collé STP)
    -1
  15. -CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   84
     
    comme par hasard c'est exactement ce que je viens de faire !! faut arreté la télépathie !!

     $lien="text.txt";
       unlink($lien);
       
        $lien2=text2.txt;
       unlink($lien2);
       


    Notice: Use of undefined constant text2 - assumed 'text2' in C:\Program Files\EasyPHP 2.0b1\www\ad\sup.php on line 127

    Notice: Use of undefined constant txt - assumed 'txt' in C:\Program Files\EasyPHP 2.0b1\www\ad\sup.php on line 127

    Warning: unlink(text2txt) [function.unlink]: No such file or directory in C:\Program Files\EasyPHP 2.0b1\www\ad\sup.php on line 128

    text.txt supprimé
    text2.txt toujours la
    -1
    1. arthezius Messages postés 3756 Statut Membre 475
       
      Sinon a quoi correspondent les lignes qu'il t'indique ?
      -1