Supprimer un fichier sans extension

Résolu
tony4758 Messages postés 105 Date d'inscription mercredi 10 novembre 2004 Statut Membre Dernière intervention 16 octobre 2005 - 3 août 2005 à 11:03
mcjoedassin Messages postés 196 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 2 septembre 2005 - 3 août 2005 à 13:27
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

malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
3 août 2005 à 11:34
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, ++
3
mcjoedassin Messages postés 196 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 2 septembre 2005
3 août 2005 à 12:14
genre avec un <input type="hidden"
3
mcjoedassin Messages postés 196 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 2 septembre 2005
3 août 2005 à 11:09
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
0
tony4758 Messages postés 105 Date d'inscription mercredi 10 novembre 2004 Statut Membre Dernière intervention 16 octobre 2005
3 août 2005 à 11:19
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 <<<<
0

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

Posez votre question
mcjoedassin Messages postés 196 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 2 septembre 2005
3 août 2005 à 11:23
quelle est l'erreur ? peux-tu en dire plus ?
0
cs_garfield90 Messages postés 388 Date d'inscription lundi 7 juillet 2003 Statut Webmaster Dernière intervention 10 février 2009
3 août 2005 à 11:27
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"
0
cs_garfield90 Messages postés 388 Date d'inscription lundi 7 juillet 2003 Statut Webmaster Dernière intervention 10 février 2009
3 août 2005 à 11:29
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"
0
tony4758 Messages postés 105 Date d'inscription mercredi 10 novembre 2004 Statut Membre Dernière intervention 16 octobre 2005
3 août 2005 à 11:31
sa me met toujours une erreur. J'ai mis l'adresse entière : http://127.0.0.1/.../.../mes_mails/'.$delete.'

>>>> Tony 4758 <<<<
0
mcjoedassin Messages postés 196 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 2 septembre 2005
3 août 2005 à 11:34
nop

il faut que tu mettes l'adresse du type c:\... ou /var/...
0
tony4758 Messages postés 105 Date d'inscription mercredi 10 novembre 2004 Statut Membre Dernière intervention 16 octobre 2005
3 août 2005 à 11:38
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 <<<<
0
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
3 août 2005 à 11:42
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?
0
tony4758 Messages postés 105 Date d'inscription mercredi 10 novembre 2004 Statut Membre Dernière intervention 16 octobre 2005
3 août 2005 à 11:46
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 <<<<
0
mcjoedassin Messages postés 196 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 2 septembre 2005
3 août 2005 à 11:50
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 ?
0
tony4758 Messages postés 105 Date d'inscription mercredi 10 novembre 2004 Statut Membre Dernière intervention 16 octobre 2005
3 août 2005 à 11:54
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 <<<<
0
mcjoedassin Messages postés 196 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 2 septembre 2005
3 août 2005 à 12:04
tu as mis un <input type="file" ou qqchose dans le genre, c'est ça ?
0
tony4758 Messages postés 105 Date d'inscription mercredi 10 novembre 2004 Statut Membre Dernière intervention 16 octobre 2005
3 août 2005 à 12:07
Non j'ai mit et je voudrais que ce champs ne se voye pas dans ma page. C'est possible ?

>>>> Tony 4758 <<<<
0
mcjoedassin Messages postés 196 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 2 septembre 2005
3 août 2005 à 12:10
tu veux qu'on puisse rentrer le texte et ensuite que le input disparaisse ?
0
tony4758 Messages postés 105 Date d'inscription mercredi 10 novembre 2004 Statut Membre Dernière intervention 16 octobre 2005
3 août 2005 à 12:12
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 <<<<
0
tony4758 Messages postés 105 Date d'inscription mercredi 10 novembre 2004 Statut Membre Dernière intervention 16 octobre 2005
3 août 2005 à 12:17
Oui voila c'est exactement ce que je voulais, merci beaucoup de toutes vos réponses à tous !!!

>>>> Tony 4758 <<<<
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
3 août 2005 à 12:57
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>
0
Rejoignez-nous