j'ai fait un script qui affiche dans une page les fichier d'un repertoire "t", avec en dessous un lien direct vers le fichier, et un lien pour suprimer le fichier!
le problème, c'est que quand je clic sur le lien pour supprimer le fichier, je recoi un message d'erreur :
Warning: unlink(t/fichier.txt): Permission denied in d:\www\monsite.com\htdocs\download\efface.php on line 23 Warning: unlink(t/fichier.txt): Permission denied in d:\www\monsite.com\htdocs\download\efface.php on line 41
je pense que sa vient des droits chmod mais je ne sui pas sur!
que faut t'il faire pour que les fichier soit totalement supprimer?
voici le code :
<?php
$dir_nom = 't/'; // dossier listé (pour lister le répertoir courant : $dir_nom = '.' --> ('point') $dir = opendir($dir_nom) or die('Erreur de listage : le répertoire n\'existe pas'); // on ouvre le contenu du dossier courant $fichier= array(); // on déclare le tableau contenant le nom des fichiers $dossier= array(); // on déclare le tableau contenant le nom des dossiers $direction_site = 't/';
if (isSet($_GET['supprimeLeFichier'])) { // si le paramètre a été spécifi" dans l'url, $leNomDuFichierASupprimer = $_GET['supprimeLeFichier']; // tu récupères sa valeur unlink($leNomDuFichierASupprimer); // et tu supprime ce fichier et lui uniquement. }
C'est en effet un problème de droits sur tes fichiers. Deux solutions :
- Soit tu modifie les droits via ton Logiciel FTP (bien souvent, clic droit sur le dossier / modifier les droits d'accès).
- Soit tu utilise la fonction chmod() de PHP avant de supprimer avec la fonction unlink().
Les droits d'accès doivent êtres 777. Avec PHP, la syntaxe devrait être :
Code:
chmod('dossier',0777);
merci de ta réponse, le problème c'est que j'avais déjea fait un chmod pour essayé, je l'ai fait depuis mon espace sur le serveur, je l'ai fait avec filezilla et la j'ai encors rajouter ton code en haut de la page, juste aprés le "<?php" je s'ait pas si c'est la qu'il faut le mettre! en tout cas le répertoire "t/" ou se trouve les fichiers a suprimer est en chmod 777 sa c'est sur!!! mais d'ou vient le problème alors? du code? la je sui complètement perdu! merci de ton aide
As-tu déjà essayé en mettant le droits d'accès sur le fichier lui-même.
Code:
chmod('url_fichier.jpg',0777);
merci pour ta reponse mais c toujour pareil! je me sui peut être tromper? voici le code rectifier
Code:
<?php
$dir_nom = 't/'; // dossier listé (pour lister le répertoir courant : $dir_nom = '.' --> ('point') $dir = opendir($dir_nom) or die('Erreur de listage : le répertoire n\'existe pas'); // on ouvre le contenu du dossier courant $fichier= array(); // on déclare le tableau contenant le nom des fichiers $dossier= array(); // on déclare le tableau contenant le nom des dossiers $direction_site = 't/';
if (isSet($_GET['supprimeLeFichier'])) { // si le paramètre a été spécifi" dans l'url, $leNomDuFichierASupprimer = $_GET['supprimeLeFichier']; // tu récupères sa valeur unlink($leNomDuFichierASupprimer); // et tu supprime ce fichier et lui uniquement. }
désolé mais c'est toujour pareil! permission denied!!!
Code:
<?php
$dir_nom = 't/'; // dossier listé (pour lister le répertoir courant : $dir_nom = '.' --> ('point') $dir = opendir($dir_nom) or die('Erreur de listage : le répertoire n\'existe pas'); // on ouvre le contenu du dossier courant $fichier= array(); // on déclare le tableau contenant le nom des fichiers $dossier= array(); // on déclare le tableau contenant le nom des dossiers $direction_site = 't/';
if (isSet($_GET['supprimeLeFichier'])) { // si le paramètre a été spécifi" dans l'url, $leNomDuFichierASupprimer = $_GET['supprimeLeFichier']; // tu récupères sa valeur unlink($leNomDuFichierASupprimer); // et tu supprime ce fichier et lui uniquement. }
As tu essayé en mettant la fonction chmod() sur le répertoire qui contient le fichier à supprimer, et non pas sur le fichier lui même ?
Moi je fonctionne comme ça et je n'ai aucun problème.
c'est bon, j'ai trouver, j'en ai eu mar alors j'ai fait un chmod sur le site complet et la sa fonctionne!! mais c'est danjeureux en quoi? a moin que sa ne le soi pas?