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 :

[Système] rmdir Permission denied


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Points : 64
    Points
    64
    Par défaut [Système] rmdir Permission denied
    bonjour,
    j'ai été voir tous les posts parlant du sujet mais aucun n'a trouvé reponse.
    j'utilise la fonction rmdir pour supprimer un répertoire de mon serveur.
    ce répertoire a été créé avec la fontion mkdir ($destination, 0777);.
    Avant d'utiliser rmdir je vide le dossier avec unlink. Etant en local, je me dis que l'erreur pourrait venir du fait que je suis sous windows.

    Warning: rmdir() [function.rmdir]: Permission denied in C:\wamp\www\upload\del.php on line 8

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    bonjour, tu ne peux pas le supprimer car c'est probablement apache qui est le propriétaire.

  3. #3
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Points : 64
    Points
    64
    Par défaut
    que dois je faire alors?

  4. #4
    Membre habitué Avatar de Azazel.fr
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 170
    Points : 196
    Points
    196
    Par défaut
    on peut la voir la ligne 8 stp ?

  5. #5
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Points : 64
    Points
    64
    Par défaut
    rmdir($destination) ;

    ce n'est pas un problème de chemin vu qu'il met que cet a cause des permissions.

  6. #6
    Membre habitué Avatar de Azazel.fr
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 170
    Points : 196
    Points
    196
    Par défaut
    pour test :
    active le safe_mode dans ton php.ini (et redémarre apache) et test ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    shell_exec('rmdir '.realpath('./'.$destination));

  7. #7
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Points : 64
    Points
    64
    Par défaut
    mais si rmdir fonctionne sur un serveur distant pourquoi pas en local ?

    ta fonction me fait l"erreur
    Warning: shell_exec() [function.shell-exec]: Cannot execute using backquotes in Safe Mode in

  8. #8
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    Je suppose que tu as essayé de faire un chmod juste avant de faire le rmdir?
    Sinon, essaye mais bon c'est sans grand espoir (puisque tu as créé le fichier en 777 a priori)

  9. #9
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Points : 64
    Points
    64
    Par défaut
    sans espoire... je me demande vraiment ce qui pourrait faire ça. alors que tout va bien sur serveur distant. peut etre windows... il faudrai que plusieur personne test si elles on aussi le problème comme ça je serai fixé

  10. #10
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut

    Normal si tu es sous Windows! Le fonctionnement des droits est différents.
    Il faut que tu clic droit sur ton dossier, propriété, sécurité, etc. Par contre, je ne sais pas comment on fait ça depuis php...

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2008
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    (désolé pour le déterrage)
    Je suis sous Windows et j'ai le même problème (j'utilise Wamp).
    il arrive a crée sans problème un dossier, mais pour le supprimer c'est impossible. Qqn a trouvé une solution depuis ?

    Edit: j'ai trouvé une solution ICI. Cela dit ça me semble un peu extrême Si qqn peut expliquer pourquoi ça marche je suis preneur

    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
    function _imagecache_recursive_delete($dir) {
      $d = dir($dir);  
      if (is_dir($dir) && !is_link($dir)) {
        if ($d = opendir($dir)) {
          while (($entry = readdir($d)) !== false) {
            if ($entry == '.' || $entry == '..') continue;
            $path = $dir .'/'. $entry;
            if (is_file($path)) unlink($path);
            if (is_dir($path)) _imagecache_recursive_delete($path);
          }
          closedir($d);
        }
        return rmdir($dir);
      }
      return unlink($dir);
    }

  12. #12
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    Salut,
    Cette fonction supprime tous les fichiers/dossiers contenus dans le dossier que tu vx supprimer.
    Je pense que si tu ne pouvais pas supprimer le dossier sans cette fonction,c'est qu'il devait rester un fichier caché quelque part...

    (sinon sous unix un shellexec("rm -rf ".$path) c'est moins fatigant en faisant attention aux espaces & cie dans $path)

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 52
    Points : 54
    Points
    54
    Par défaut
    hello,
    tu as dû oublier d'utiliser la fonction closedir()
    j'avais tout le temps ce warning jusqu'à ce que je ferme le dossier avant de l'effacer

    typiquement :

    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
    <?php
        $handle = opendir($dossier);
        $state = 0;
        while(false !== ($file = readdir($handle))){
            if($file == '.' || $file == '..') continue;
            if(!unlink($dossier.'/'.$file)){
                $state = 1;
            }
        }
        closedir($handle);
        if($state == 1){
            $error = "Erreur pendant la suppression des fichiers";
        }
        else{
            if(!rmdir($dossier)){
                $error = "Erreur pendant la suppression du répertoire";
            }
        }
    ?>

Discussions similaires

  1. [Système] require et Permission denied
    Par TangoZoulou dans le forum Langage
    Réponses: 13
    Dernier message: 19/04/2007, 18h58
  2. [Système] fopen permission denied
    Par grinder59 dans le forum Langage
    Réponses: 1
    Dernier message: 17/05/2006, 14h25
  3. [Système] fopen()Permission denied sur Apache
    Par manaboko dans le forum Langage
    Réponses: 9
    Dernier message: 15/09/2005, 18h08
  4. permission denied
    Par HULK dans le forum Apache
    Réponses: 2
    Dernier message: 08/04/2004, 20h46
  5. [PostgreSQL]permission denied
    Par alex2205 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 13/02/2003, 14h27

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