Supression de fichier en PHP avec unlink(URL)

Résolu
-CCM- Messages postés 927 Date d'inscription   Statut Membre Dernière intervention   -  
-CCM- Messages postés 927 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?
A voir également:

14 réponses

croy Messages postés 453 Date d'inscription   Statut Membre Dernière intervention   114
 
if( file-exists( "../documents/$dossier/$dossier2" ) )
   unlink( "../documents/$dossier/$dossier2" ); 
else
   echo "ce fichier n'existe pas";
6
-CCM- Messages postés 927 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
croy Messages postés 453 Date d'inscription   Statut Membre Dernière intervention   114
 
Essaye avec un chemin complet :
unlink( "C:\Program Files\EasyPHP 2.0b1\www\doss\text.txt" );
1
-CCM- Messages postés 927 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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
-CCM- Messages postés 927 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
-CCM- Messages postés 927 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
-CCM- Messages postés 927 Date d'inscription   Statut Membre Dernière intervention   84
 
je relance donc, je n'ai pas trouver comment exploiter le "false"
1
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   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
croy Messages postés 453 Date d'inscription   Statut Membre Dernière intervention   114
 
Remplace
unlink('$lien');
par
unlink( $lien );
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   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
croy Messages postés 453 Date d'inscription   Statut Membre Dernière intervention   114
 
Il reste que le code donné (unlink( '$lien' );) ne peut pas marcher et que c'est la première chose à modifier.
0
-CCM- Messages postés 927 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
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
ça pourrai pas venir des fonctionnalités et extensions de PHP qui ne serai pas activé ??
-1
-CCM- Messages postés 927 Date d'inscription   Statut Membre Dernière intervention   84
 
J'ai rien trouver sur mon phpinfo.

Quelles paramètres sont à verifier ?
-1
croy Messages postés 453 Date d'inscription   Statut Membre Dernière intervention   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
-CCM- Messages postés 927 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
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Sinon a quoi correspondent les lignes qu'il t'indique ?
-1