IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[FTP] Suppression de fichiers avec unlink


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 16
    Points
    16
    Par défaut [FTP] Suppression de fichiers avec unlink
    Bonjour,

    je cherche à supprimer des fichiers avec un script PHP,

    j'ai trouvé un code sur internet qui devrait permettre cela, que j'ai adapté à mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <html>
    <title>Suppression</title>
    <body>
     
     
    <?php
    $adresse = "./upload/";//Adresse du dossier.
    if(isset($_GET['fichier']))//Si la variable $_GET['fichier'] existe...
    {
         if ($_GET['fichier'] != "." && $_GET['fichier'] != "..") //Filtre anti-points
         {
              $nom=''.$adresse.$_GET['fichier'].''; //Formatage du nom précédé de l'adresse du dossier dans lequel il se trouve.
              unlink($nom); //Suppression du fichier
              echo 'Le fichier "'.$_GET['fichier'].'" a ete efface !<br>'; //Message de confirmation de suppression.
         }
    }
    ?>
     
     
    </body>
    </html>
    A l'exécution, il m'affiche l'erreur suivante :

    Warning: unlink(./upload/02.avi) [function.unlink]: Permission denied in /cal/nfs2/promo09/rosko/public_html/Tests/suppression.php on line 15
    (la ligne 15 correspond à celle où il y a le unlink).


    En cherchant sur internet je tombe sur un conseil me disant de rajouter les deux lignes suivantes :

    umask(0000);
    chmod($nom,0777);
    Cette fois l'erreur est la suivante :
    Warning: chmod() [function.chmod]: Not owner in /cal/nfs2/promo09/rosko/public_html/Tests/suppression.php on line 14

    Warning: unlink(./upload/02.avi) [function.unlink]: Permission denied in /cal/nfs2/promo09/rosko/public_html/Tests/suppression.php on line 15

    Pourriez vous m'aider svp ?

    Merci d'avance.

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Bonjour,

    L'identité sous laquelle fonctionne ton script n'a pas les droits suffisants pour effacer des fichiers ou pour lancer des commandes systèmes. C'est sur un mutualisé ou un dédié ? mod_php ou cgi ?
    Si c'est du mod_php, il est possible par exemple que ton fichier ait été uploadé (par ftp ou autre) sous un utilisateur spécifique, et que php fonctionne avec les droits du serveur apache.

  3. #3
    Membre actif Avatar de BlackSmith
    Inscrit en
    Mars 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2008
    Messages : 181
    Points : 207
    Points
    207
    Par défaut
    Warning: chmod() [function.chmod]: Not owner in /cal/nfs2/promo09/rosko/public_html/Tests/suppression.php on line 14
    Signifie que tu n'est pas le proprietaire du fichier : essaye de faire un chown avant d'essayer de supprimer les fichiers

    Warning: unlink(./upload/02.avi) [function.unlink]: Permission denied in /cal/nfs2/promo09/rosko/public_html/Tests/suppression.php on line 15
    Pour le deuxième warning cela vient que tu n'a pas les droit de supprimer ce fichier, à mon avis il faut que tu fasse un chmod sur ton serveur ftp dans les dossier ou tu veut supprimer les fichiers.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    Merci pour vos réponses,

    en fait le serveur est hébergé par mon école, ce qui fait que je n'ai pas les droits de root, donc je ne pense pas pouvoir faire marcher le chwon...

    Je ne pourrais pas dire si les fichiers à supprimer m'appartiennent, ils sont créés sur ma machine personnelle puis transférées avec Filezilla sur mon compte unix de l'école...

    Sinon, ca veut dire que je ne pourrais pas supprimer les fichiers, ou il y a une autre méthode ?


    @Tsilefy : je ne sais pas ce que signifie mutualisé ou dédié. Ce sont des fichiers php que j'ai transférés de ma machine sur mon compte de l'école...

  5. #5
    Membre régulier Avatar de arthak
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 91
    Points : 99
    Points
    99
    Par défaut
    Sinon ouvre une connexion ftp en php pour supprimer ton fichier.
    "On ne voit bien qu'avec le cœur, l'essentiel est invisible pour les yeux"
    Antoine de St Exupéry.

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Bonsoir,
    Mutualisé signifie que c'est un hébergement web courant, standard. Dédié veut dire que tu loue non pas un espace web, mais un serveur, et donc que tu peux faire tout ce que tu veux sur ce serveur (y compris changer les propriétaires ou les droits). Apparemment, ce n'est pas le cas.
    Le problème est que les fichiers sont bien uploadés sous ton identité, tandis que php tourne (très probablement) sous l'identité du serveur apache.
    La solution accessible dans ton cas est, depuis filezilla, de changer les droits d'accès à ton fichier à 777 (c'est-à-dire droits complets au propriétaire, au groupe et aux autres). Ça permettra à php de l'effacer. C'est l'équivalent de chmod($nom,0777);
    Attention toutefois: de cette manière, tout utilisateur du serveur de l'école peut supprimer ton fichier. Il y a donc un problème de sécurité.
    Une autre solution serait de rajouter apache (ou www, ou quel que soit le nom de l'utilisateur apache sous lequel tourne php) au groupe propriétaire du fichier, et de mettre les droits d'accès à 775 (ou mieux, 770), mais si tu n'a pas un accès ssh, ça me semble difficile.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    La solution de changer les droits ne me va pas,
    en fait je cherche à faire une page où l'utilisateur peut uploader une vidéo, en regarder une et les supprimer, donc je ne veux pas avoir à changer manuellement les droits à chaque vidéo uploadée.

    Pour le moment je travaille en localhost, je verrais un peu plus tard pour exploiter vos solutions.


    En tout cas merci pour votre aide

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    L'autre solution est d'effectuer les uploads par php lui-même. D'ailleurs, je pense que tu faisais juste des tests avec des fichiers uploadés par ftp, non ? Le but est de les uploader via php.
    Et là, tadaa, plus aucun problème.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    Oui, mais pour uploader les fichiers par php, j'ai le même genre d'erreur de droits ^^

    (voire mon topic précédent, dans le même forum)

Discussions similaires

  1. Suppression de fichiers avec unlink
    Par noftal dans le forum Langage
    Réponses: 4
    Dernier message: 26/05/2015, 16h52
  2. problème suppression fichier avec unlink()
    Par proxichou dans le forum Langage
    Réponses: 3
    Dernier message: 20/10/2010, 10h02
  3. Réponses: 9
    Dernier message: 05/12/2007, 13h14
  4. [FTP] Suppression de fichiers !
    Par Dsphinx dans le forum Langage
    Réponses: 14
    Dernier message: 29/05/2006, 09h39
  5. Suppression impossible d'un fichier avec unlink
    Par oli-ola dans le forum Langage
    Réponses: 11
    Dernier message: 04/01/2006, 13h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo