Supprimer un fichier sans extension [Résolu]

Signaler
Messages postés
105
Date d'inscription
mercredi 10 novembre 2004
Statut
Membre
Dernière intervention
16 octobre 2005
-
Messages postés
196
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
2 septembre 2005
-
Bonjour, alors voila mon problème que j'essaye de résoudre depuis quelques temps :
J'aimerai savoir comment supprimmer un fichier de type fichier (qui n'a pas d'extension). J'ai éssayé avec unlink() mais sa ne marche pas. Voici le code que j'essaye depuis un moment sachant que le fichier en question se trouve dans le dossier mes_mails/ :

<?
$delete = AddSlashes (htmlspecialchars($_POST['delete'])); //Il récupère le formulaire de la page d'avant.
$supprimer = unlink('mes_mails/'.$delete.'');
echo $supprimer;
?>
Mais sa me met des erreurs. J'ai aussi éssayé sa :

<?
$delete = AddSlashes (htmlspecialchars($_POST['delete']));
unlink('mes_mails/'.$delete.'');
?>
Mai la aussi sa m'affiche la même chose. Auriez-vous une idée ???
>>>> Tony 4758 <<<<

21 réponses

Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
14
J'ai fait le test suivant: j'ai cree un fichier sans extension que j'ai appele 'prout', j'ai fait une fichier php avec dedans <?php unlink('prout'):?> et ca fonctionne sans probleme...

Es-tu sur d'avoir les droits necessaires sur ton dossier? Si tu as des erreurs du type Warning: unlink(prout): Permission denied in /scratch/data/www/hosts/.../test/unlink.php on line 1, c'est que tu n'as pas les droits. Il faut mettre ton dossier en droit 703 au moins.

Enjoy, ++
Messages postés
196
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
2 septembre 2005

genre avec un <input type="hidden"
Messages postés
196
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
2 septembre 2005

quelle est l'erreur ?

as-tu les droits sur le fichier ?

peux-tu faire un echo $delete pour voir ?



et question sécurité ...



as-tu pensé à un delete de la forme ../../../../mon/fichier/log
Messages postés
105
Date d'inscription
mercredi 10 novembre 2004
Statut
Membre
Dernière intervention
16 octobre 2005

je suis en local pour le moment avec easy php 1.8. Et quand je met echo $delete sa m'affiche le nom du fichier, je ne comprend pas pourquoi sa ne marche pas. Merci de ta réponse quand même.

>>>> Tony 4758 <<<<
Messages postés
196
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
2 septembre 2005

quelle est l'erreur ? peux-tu en dire plus ?
Messages postés
388
Date d'inscription
lundi 7 juillet 2003
Statut
Webmaster
Dernière intervention
10 février 2009

verifie si le fichier existe (is_file) et regarde ce que ca donne

"They are 10 sorts of persons whose understand binary and whose not"
Messages postés
388
Date d'inscription
lundi 7 juillet 2003
Statut
Webmaster
Dernière intervention
10 février 2009

je crois qu'il faut que tu mettes l'adresse réelle du fichier pour que ca fonctionne et non une adresse relative


"They are 10 sorts of persons whose understand binary and whose not"
Messages postés
105
Date d'inscription
mercredi 10 novembre 2004
Statut
Membre
Dernière intervention
16 octobre 2005

sa me met toujours une erreur. J'ai mis l'adresse entière : http://127.0.0.1/.../.../mes_mails/'.$delete.'

>>>> Tony 4758 <<<<
Messages postés
196
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
2 septembre 2005

nop

il faut que tu mettes l'adresse du type c:\... ou /var/...
Messages postés
105
Date d'inscription
mercredi 10 novembre 2004
Statut
Membre
Dernière intervention
16 octobre 2005

sa me met sa quand je met unlink('mes_mails/'.$delete.'');


Warning: unlink(mes_mails/salut): No such file or directory in c:\program files\easyphp1-8\www\boite de reception\admin@i-rersse.fr\delete.php on line 7
mais je vais éssayer de mettre le fichier delete dans le même repertoire que le fichier à supprimer, sa pourrait peut être arranger les choses, en tout cas je te remercie de ta réponse. Je vais éssayer je te donne la réponse dans 1 minute !!!

>>>> Tony 4758 <<<<
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
14
No such file or directory...

Et bien c'est clair pour le prog que le fichier n'existe pas. Et s'il existe vraiment (t'as fait des refresh?) c'est ton path qui est faux.

Ton erreur sous-entend que ton fichier est dans c:\program files\easyphp1-8\www\boite de reception\admin@i-rersse.fr\mes_mails, est-ce bien le cas?
Messages postés
105
Date d'inscription
mercredi 10 novembre 2004
Statut
Membre
Dernière intervention
16 octobre 2005

Oui c'est, mais j'y suis arrivé en faisant :
<?
$fichier = AddSlashes (htmlspecialchars($_POST['delete']));
unlink(''.$fichier.'');
?>

Mais j'ai toujours un problème, c'est que j'ai besoin d'un formulaire pour supprimer ce fichier avec son nom dedans, je pourrais pas faire sa avec un lien, ou alors faire disparaitre le champs de texte et laisser que le bouton ? Merci beaucoup de tes réponses !!!

>>>> Tony 4758 <<<<
Messages postés
196
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
2 septembre 2005

déja

. je ne vois pas l'utilité du AddSlashes (htmlspecialchars

. je ne vois pas l'utilité du ''.$fichier.'' (remplaçable par $fichier)

. remplace <? par <?php ...

. ton problème vient peut-être du fait qu'il te faut mettre des \\ à la place des / dans le chemin vers le fichier ...

. pas compris ton problème de formulaire ! en quoi est-ce différent d'un formulaire classique ?
Messages postés
105
Date d'inscription
mercredi 10 novembre 2004
Statut
Membre
Dernière intervention
16 octobre 2005

En fait j'ai une page nommée lire.php et mon script php récupère les fichiers sans extensions dans un repertoire défini (mes_mails), et dès qu'on ouvre un de ses fichiers, on peut le supprimmer en appuyant sur le bouton éffacer, mais à côté du bouton il y a le champs de texte ou est inscrit le nom du fichier, et ce champs de texte la je voudrais qu'on ne le voit pas. Ou si ce n'est pas possible, je voudrais que ce champs soit non modifiable.

>>>> Tony 4758 <<<<
Messages postés
196
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
2 septembre 2005

tu as mis un <input type="file" ou qqchose dans le genre, c'est ça ?
Messages postés
105
Date d'inscription
mercredi 10 novembre 2004
Statut
Membre
Dernière intervention
16 octobre 2005

Non j'ai mit et je voudrais que ce champs ne se voye pas dans ma page. C'est possible ?

>>>> Tony 4758 <<<<
Messages postés
196
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
2 septembre 2005

tu veux qu'on puisse rentrer le texte et ensuite que le input disparaisse ?
Messages postés
105
Date d'inscription
mercredi 10 novembre 2004
Statut
Membre
Dernière intervention
16 octobre 2005

Non je veut juste que l'on ne voye pas mon input dans la page sans pour autant l'enlevé. Je veut juste que l'on voit le bouton Effacer seulement.

>>>> Tony 4758 <<<<
Messages postés
105
Date d'inscription
mercredi 10 novembre 2004
Statut
Membre
Dernière intervention
16 octobre 2005

Oui voila c'est exactement ce que je voulais, merci beaucoup de toutes vos réponses à tous !!!

>>>> Tony 4758 <<<<
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,



pense à parser les points et les slashs, antislashs pour ne pas te
retrouver dans l'erreur d'un fichier supprimé appartenant à ton site...



Tu peux utiliser les expressions régulières. Pense aussi à remplacer
<? par <?php. Ensuite enlève ton addslashes un nom de fichier qui
contient une appostrophe ne sera pas effacé de toute façon, il contient
des caractères interdits.

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>