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 :

[Upload] Problème suppression de fichier


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut [Upload] Problème suppression de fichier
    Bonjour à tous.

    Voilà le code que j'utilise pour gérer les images de mon site :
    Tout fonctionne très bien sauf la suppression des images.
    Si vous pouvez m'eclairer !!

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <?php
     
     
    // suppression d'images
    if (!empty($delete))
    {
         if (file_exists($path)) 
        {
           if(@unlink($path))
                echo "Le fichier $path a été supprimé avec succès";
            else
                echo "Erreur lors de la suppression du fichier $path";
        }
        else 
            echo "Le fichier $path n'existe pas";
     
        echo '<br><br>';
    }
     
     
     
         // affiche le lien supprimer
      echo "\r\n\r\n\t\t<td><a href=\"$_SERVER[PHP_SELF]?delete=1&path=$path&nom=$nom\"
            onClick=\"if (confirm('Etes-vous sûr de vouloir supprimer cette image ?') == true) return true; else return false; \">$f Supprimer $ff</a></td>";
     
        // Affiche le nom de l'image & taille
      echo "\r\n\r\n\t\t<td align='center' bgcolor='#cccccc'>$f $tab_image[$j]<br /> $infos_image[0]*$infos_image[1] $ff</td>";
     
     
    ?>
    Merci

  2. #2
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Euh ? Tu pourrais isoler le problème ?
    Consultant idéaliste.

  3. #3
    Membre actif Avatar de Ricou13
    Inscrit en
    Août 2002
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 292
    Points : 224
    Points
    224
    Par défaut
    Salut,

    Affiche le message d'erreur. Ne serait-ce pas simplement un pb de droits d'accès au dossier ?
    il ne faut pas de tout pour faire un monde. Il faut du bonheur et rien d'autre. Paul Eluard
    Des fois ça malche, des fois ça malche pas. Garcimore

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut
    Euh allez un peu au pif avec quel droit son enregistrés les images?

    Parceque si les droits sont mauvais a l'enregistrement y a de fortes chances que tu puisses pas les supprimer.

  5. #5
    Membre actif Avatar de Ricou13
    Inscrit en
    Août 2002
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 292
    Points : 224
    Points
    224
    Par défaut
    Je t'avoue que, comme macbook, je n'ai pas lu ton code (y en a trop).
    Je ne suis pas non plus expert mais lorsque j'upload mes images via FTP, je ne peux pas les supprimer, même en php, autrement que par FTP.

    Sinon, cela voudrait dire qu'un petit bout de code PHP pourrait supprimer n'importe quel site rien qu'en ayant l'URL de départ.

    J'ai fait un système de gestion des photos d'un site directement depuis l'interface administrateur (en ligne quoi) et j'ai du modifier les droits d'accès au dossier "photos" pour pouvoir les renommer ou les supprimer via PHP
    il ne faut pas de tout pour faire un monde. Il faut du bonheur et rien d'autre. Paul Eluard
    Des fois ça malche, des fois ça malche pas. Garcimore

  6. #6
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    J'ai fait un système de gestion des photos d'un site directement depuis l'interface administrateur (en ligne quoi) et j'ai du modifier les droits d'accès au dossier "photos" pour pouvoir les renommer ou les supprimer via PHP
    C'est ce que je fais aussi.
    J'upload via un formulaire mais la supression ne marche pas :

    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
     
    // suppression d'images
    if (!empty($delete))
    {
         if (file_exists($path)) 
        {
           if(@unlink($path))
                echo "Le fichier $path a été supprimé avec succès";
            else
                echo "Erreur lors de la suppression du fichier $path";
        }
        else 
            echo "Le fichier $path n'existe pas";
     
        echo '<br><br>';
    }
     
    // Affiche le nom de l'image & taille
      echo "\r\n\r\n\t\t<td align='center' bgcolor='#cccccc'>$f $tab_image[$j]<br /> $infos_image[0]*$infos_image[1] $ff</td>";

  7. #7
    Membre actif Avatar de Ricou13
    Inscrit en
    Août 2002
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 292
    Points : 224
    Points
    224
    Par défaut
    Enlève l'arobase sur le unlink pour voir le vrai message d'erreur
    il ne faut pas de tout pour faire un monde. Il faut du bonheur et rien d'autre. Paul Eluard
    Des fois ça malche, des fois ça malche pas. Garcimore

  8. #8
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Ca ne change rien il revient à la page par défaut et ne supprime pas.

  9. #9
    Membre actif Avatar de Ricou13
    Inscrit en
    Août 2002
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 292
    Points : 224
    Points
    224
    Par défaut
    Et t'as quoi comme droits sur le dossier ?

    Avec un FTP (ou IE) et clic droit sur le dossier.
    il ne faut pas de tout pour faire un monde. Il faut du bonheur et rien d'autre. Paul Eluard
    Des fois ça malche, des fois ça malche pas. Garcimore

  10. #10
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    777 sur le dossier upload

  11. #11
    Membre actif Avatar de Ricou13
    Inscrit en
    Août 2002
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 292
    Points : 224
    Points
    224
    Par défaut
    Alors là, je ne piges pas !

    Ca me dépasse un peu là
    il ne faut pas de tout pour faire un monde. Il faut du bonheur et rien d'autre. Paul Eluard
    Des fois ça malche, des fois ça malche pas. Garcimore

  12. #12
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    En fait apparemment ca vient du chemin vers mon dossier car si je mets le dossier et le script à la racine ça fonctionne.

    Sauf que mon script est appelé dans une page et le dossier lui est à la racine du site.

    Donc je dois avoir un souci avec la varuiable $nom_repertoire = '../upload';

  13. #13
    Membre actif Avatar de Ricou13
    Inscrit en
    Août 2002
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 292
    Points : 224
    Points
    224
    Par défaut
    Affiche $path avant le "if (file_exists($path)) "

    Et regarde si, par rapport à l'emplacement de la page en cours, le chemin relatif est bon.
    il ne faut pas de tout pour faire un monde. Il faut du bonheur et rien d'autre. Paul Eluard
    Des fois ça malche, des fois ça malche pas. Garcimore

  14. #14
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Ca ne fait rien du tout !!

  15. #15
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Voici le code complet peut être que tu comprendras mieux

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
     
    <?php
     
    // Visionneuse sur 2 colonnes, avec zoom et supression du fichier
     
    /****************  A PARAMETRER ******************/
    //nom du répertoire contenant les images à afficher
     
    $nom_repertoire = '../upload';
    $subfolders = 0; // 1 ou 0  : Liste les images des sous rep
     
    /*************************************************/
    /*************************************************/
     
    /* Fonction de listage des fichiers */
    // $nom_repertoire: répertoire contenant les images
    // $tab_images: tableau contenant les liens relatifs des images
     
    // $i: indice de départ
    // $sunfolders: Si 1, listage des sous-répertoires
    function lister($nom_repertoire,  &$tab_image, &$i, $subfolders)
    {
        // si $nom_repertoire ne se termine pas par /
        if(substr($nom_repertoire, -1) != '/')
            $nom_repertoire .= '/';
     
        // ouverture du dossier
        $pointeur = @opendir($nom_repertoire);
        if(!$pointeur)
            return;
     
        // parcourt les fichiers
        while ($fichier = readdir($pointeur))
        {
            if($fichier == '.' || $fichier == '..')
                continue;
     
            // s'il s'agit d'un dossier
            if(is_dir($nom_repertoire . $fichier))
            {
                // si on doit liste les sous-répertoires
                if($subfolders)
                    // appel de la fonction (récursivité)
                    lister($nom_repertoire . $fichier . '/', $tab_image, $i, $subfolders);
            }
            else
            {
                // récupération de l'extension
                $ext = strtolower(substr($fichier, -4));
                if ($ext == '.gif' || $ext == '.jpg' || $ext == '.png' || $ext == 'jpeg')
                    // ajout du fichier dans le tableau
                    $tab_image[$i++] = $nom_repertoire . $fichier;
            }
        }
     
        //on ferme le répertoire
        @closedir($pointeur);
    }
     
    /* Récupération des variables */
    $delete = isset($_GET['delete']) ? $_GET['delete'] : '';
    $path = isset($_GET['path']) ? $_GET['path'] : '';
     
    if(!is_dir($nom_repertoire))
    {
        echo 'Le répertoire n\'existe pas';
        exit;
    }
     
    // Utilisation de font et non de style pour reperer
    // trés facilement le texte dans ce source
    $f = "<font face='verdana' size='2' color='#111111'>";
    $ff = '</font>';
     
     
    // suppression d'images
    if (!empty($delete))
    {  
         if (file_exists($path)) 
        {
           if(unlink($path))
                echo "Le fichier $path a été supprimé avec succès";
            else
                echo "Erreur lors de la suppression du fichier $path";
        }
        else 
            echo "Le fichier $path n'existe pas";
     
        echo '<br><br>';
    }
     
    //affichage de l'entête du tableau
    echo "
        <table border='1' align='center' width='500'>
      <td align='center'>$f Image $ff</td>
      <td>$f Supprimer $ff</td>
      <td align='center'>$f  Nom de l'image $ff</td>";
     
    //ouvre le repertoire
    $pointeur = @opendir($nom_repertoire);
    if(!$pointeur)
    {
        echo 'Erreur lors de l\'ouverture du répartoire';
        exit;
    }
     
    $i = 0;
    $tab_image = array();
    lister($nom_repertoire, $tab_image, $i, $subfolders);
     
    // on trie le tableau par ordre alphabétique
    array_multisort($tab_image, SORT_ASC);
     
    // affichage des images (en 60 * 60 ici)
    // affichage des photos sur 2 colonnes
    for ($j = 0; $j < $i; $j++)
    {
        if($j % 1 == 0)
            echo "\r\n\r\n\t<tr align=\"center\">";
     
        // image1
        $path = $tab_image[$j];  // chemin de l'image1
        $image = '<img src="' . $path . '" width="90" height="90" border="0">';
        $nom =  $tab_image[$j];                      // nom de l'image1
        $infos_image = @getImageSize($path);
     
        //dimension fenetre zoom image1
      $typ1 = $infos_image[0] + 40;
      $typ2 = $infos_image[1] + 40;
     
      // affichage de l'image
      echo "\r\n\r\n\t\t<td><a href=\"#\" onClick=\"window.open('$path', 'new', 'width=$typ1, height=$typ2, toolbar=no, location=no,directories=no, status=no, menubar=no,scrollbars=yes, copyhistory=no, resizable=yes')\">$image</a></td>";
     
         // affiche le lien supprimer
      echo "\r\n\r\n\t\t<td><a href=\"$_SERVER[PHP_SELF]?delete=1&path=$path&nom=$nom\"
            onClick=\"if (confirm('Etes-vous sûr de vouloir supprimer cette image ?') == true) return true; else return false; \">$f Supprimer $ff</a></td>";
     
        // Affiche le nom de l'image & taille
      echo "\r\n\r\n\t\t<td align='center' bgcolor='#cccccc'>$f $tab_image[$j]<br /> $infos_image[0]*$infos_image[1] $ff</td>";
     
        if($j % 2 != 0)
            echo "\r\n\t</tr>";
    }
     
    echo "\r\n</table>";
     
    ?>

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut
    alors si c'est un probleme de chemin de suppression c'est simple faut aplpiquer cette regle.


    Tu ne t'occupes pas de l'endroit ou est enregistré ta fonctione mais du fichier dans lequel elle s'execute.

    Si ton fichier qui s'execute (celui de l'url) est a la racine la t'as un chemin relatrif simple normal quoi.

    Sinon faut pas oublier de remonter les dossier et de redescendre dans les bons.

  17. #17
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    J'ai trouvé !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // affiche le lien supprimer
      echo "\r\n\r\n\t\t<td><a href=\"$_SERVER[PHP_SELF]?page=rep_photos&delete=1&path=$path&nom=$nom\"
            onClick=\"if (confirm('Etes-vous sûr de vouloir supprimer $nom_image ?') == true) return true; else return false; \">$f 
    		<img src = 'images/delete.gif'/> $ff</a></td>";
    Je devais rajouter ca : page=rep_photos& !!

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Upload] Problème d'affichage fichier jpg
    Par Arkoze dans le forum Langage
    Réponses: 1
    Dernier message: 10/01/2008, 13h21
  2. [Upload] Problème upload de gros fichiers avec Firefox
    Par the rootsm@n dans le forum Langage
    Réponses: 12
    Dernier message: 19/02/2006, 20h43
  3. [MySQL] upload : problème fichiers existants dans la bdd ?
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/02/2006, 11h29
  4. Problème de suppression de fichier
    Par sorry60 dans le forum Assembleur
    Réponses: 7
    Dernier message: 23/04/2005, 18h33
  5. Réponses: 4
    Dernier message: 16/04/2004, 08h20

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