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] Problème d'ajout de liens pour la suppression de fichier avec unlink


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut [FTP] Problème d'ajout de liens pour la suppression de fichier avec unlink
    Bonjour à tous ,
    Je suis débutant en php et je suis sur un petit problème depuis deux ou trois jours, je viens donc vous demander de l'aide!
    A mon avis, c'est juste un problème de syntaxe!!!

    Voila, j'ai un fichier qui affiche tout les fichier d'un répertoire "t/" avec en dessous, un lien direct vers le fichier affiché !
    Pour cela, il n'y a pas de problème, cela fonctionne correctement !
    Voici le contenu de ce fichier :

    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
    <?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 = 'source/';
     
    while($element = readdir($dir)) {
        if($element != '.' && $element != '..') {
            if (!is_dir($dir_nom.'/'.$element)) {$fichier[] = $element;}
            else {$dossier[] = $element;}
        }
    }
     
    closedir($dir);
     
     
    if(!empty($fichier)){
        sort($fichier);// pour le tri croissant, rsort() pour le tri décroissant
     
    foreach($fichier as $lien)
     
      {
    {
    echo '</br>';
    }
                include('t/'.$lien);
    {
    echo '</br>';
    }
    {
    echo '<a href="t/'.($lien).'">'.$lien.'</a><br />';
    }
    {
    echo '</br>';
    }
     
            }
     
     }
    ?>
    Sur ce fichier, je voudrais rajouter un fonction qui me permettrait de supprimer le fichier et ce, grâce à un lien placé en dessous, pour cela, j'ai pensé à la fonction unlink!

    J'ai donc essayé de la rajouter au script fonctionnant :

    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
    <?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 = 'source/';
     
    while($element = readdir($dir)) {
        if($element != '.' && $element != '..') {
            if (!is_dir($dir_nom.'/'.$element)) {$fichier[] = $element;}
            else {$dossier[] = $element;}
        }
    }
     
    closedir($dir);
     
     
    if(!empty($fichier)){
        sort($fichier);// pour le tri croissant, rsort() pour le tri décroissant
     
    foreach($fichier as $lien)
    $unlink= unlink('t/'.$lien);
     
      {
    {
    echo '</br>';
    }
                include('t/'.$lien);
    {
    echo '</br>';
    }
    {
    echo '<a href="t/'.($lien).'">'.$lien.'</a><br />';
    }
    {
    echo '</br>';
    }
    {
    echo '<a href="$unlink">'.'supprimer' . $lien.'</a><br />';
    }
    {
    echo '</br></br>';
    }
     
            }
     
     }
    ?>

    Mas je reçois un message d'erreur du genre permission denied et il n'y a que le dernier fichier du répertoire "t/" qui s'affiche!

    Auriez-vous une idée pour que le lien de suppression fonctionne et supprime le fichier sélectionné ?
    merci de votre aide précieuse

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 44
    Points : 55
    Points
    55
    Par défaut
    Est-ce que apache a les droits d'écriture-lecture-exécution sur ton répertoire et ses fichiers ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut re
    ça je ne sais pas, comment puis-je le savoir ?
    Désolé je suis débutant et je rame!
    Merci

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 44
    Points : 55
    Points
    55
    Par défaut
    ton site est hébergé chez toi ? ou chez un hébergeur ? tu as un accès SSH ? FTP ?

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Je dis peut être une betise, mais je ne suis pas sur que l'on puisse mettre le unlink dans le href.

    Je ferais plutot appel à une fonction avec "onclick" qui utiliserait le unlink.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut re

    mon site est hébergé sur un serveur (LWS) si quelqun conait!

    pour le reste je ne sait pas!

    j'ai fais de ou trois recherche et j'ai un peut avancé, j'ai modifier le code comme ceci :

    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
    <?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 = 'source/';
     
    while($element = readdir($dir)) {
        if($element != '.' && $element != '..') {
            if (!is_dir($dir_nom.'/'.$element)) {$fichier[] = $element;}
            else {$dossier[] = $element;}
        }
    }
     
    closedir($dir);
     
     unlink($_GET);
    $_GET['supprimeLeFichier'];
     
    if(!empty($fichier)){
        sort($fichier);// pour le tri croissant, rsort() pour le tri décroissant
     
    foreach($fichier as $lien)
     
      {
    {
    echo '</br>';
    }
                include('t/'.$lien);
    {
    echo '</br>';
    }
    {
    echo '<a href="t/'.($lien).'">'.$lien.'</a><br />';
    }
    {
    echo '</br>';
    }
    {
    echo '<a href="efface.php?supprimeLeFichier='.($lien).'">'.'supprimer' . $lien.'</a><br />';
    }
    {
    echo '</br></br>';
    }
     
            }
     
     
     }
     
     
     
     
     
     
    ?>
    et maintenant, les liens de suppression s'affiche mais si je clic, rien ne se passe!!!!!

    et je recois également un message d'erreur!
    voici la page qui s'affiche :


    Warning: unlink(Array): No such file or directory in d:\www\dechichulien.com\htdocs\download\efface.php on line 21

    Fichier Index. Ne pas éditer !
    admin.txt

    supprimeradmin.txt



    Fichier Index. Ne pas éditer !
    after.txt

    supprimerafter.txt



    Fichier Index. Ne pas éditer ! dffd||
    bas.txt

    supprimerbas.txt



    Fichier Index. Ne pas éditer ! || ||
    before.txt

    supprimerbefore.txt





    commentaires.txt

    supprimercommentaires.txt



    Fichier Index. Ne pas éditer ! || fdffffd || dfdfdfdf
    conditions.txt

    supprimerconditions.txt


    ps: le "Fichier Index. Ne pas éditer !", c'est juste le contenue des pages

    merci de vos réponses

  7. #7
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    met quelque chose du genre :

    $lienasupp = $_GET['supprimeLeFichier'];
    if ($lienasupp != NULL) { unlink($lienasupp); }

    à la place de :

    unlink($_GET);
    $_GET['supprimeLeFichier'];

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par tomtomsl Voir le message
    met quelque chose du genre :

    $lienasupp = $_GET['supprimeLeFichier'];
    if ($lienasupp != NULL) { unlink($lienasupp); }

    à la place de :

    unlink($_GET);
    $_GET['supprimeLeFichier'];
    merci,mais sa ne fonctionne toujours pas!

    maintenant, sur la page, il n'y a pas d'erreur mais quand je clic sur le lien pour supprimer, la page s'affiche normalement mais il y a se message d'erreur :

    Warning: unlink(admin.txt): No such file or directory in d:\www\dechichulien.com\htdocs\download\efface.php on line 22

  9. #9
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Le problème vient du fait que le chemin d'accés n'est pas bon, il ne trouve pas le fichier.

    modifie cette ligne :

    echo '<a href="efface.php?supprimeLeFichier=t/'.($lien).'">'.'supprimer' . $lien.'</a><br />';

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut re
    merci apparemment sa fonctionne mais il me dis permission denied! Que faut-il faire pour donné la permission ? Ce n'est pas un chmod 777 par hasard ?
    Comment fait-on ?

    Voici le code complet de la page :
    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
    <?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/'; 
     
    while($element = readdir($dir)) { 
        if($element != '.' && $element != '..') { 
            if (!is_dir($dir_nom.'/'.$element)) { 
                $fichier[] = $element; 
            } 
            else { 
                $dossier[] = $element; 
            } 
        } 
    } 
     
    closedir($dir); 
     
    $lienasupp = $_GET['supprimeLeFichier'];
    if ($lienasupp != NULL) { unlink($lienasupp); }
     
    if(!empty($fichier)){ 
        sort($fichier);// pour le tri croissant, rsort() pour le tri décroissant 
     
        foreach($fichier as $lien) { 
            echo '</br>'; 
            include('t/'.$lien); 
            echo '</br>'; 
            echo '<a href="t/'.($lien).'">'.$lien.'</a><br />'; 
            echo '</br>'; 
            echo '<a href="efface.php?supprimeLeFichier=t/'.($lien).'">'.'supprimer' . $lien.'</a><br />';
            echo '</br></br>'; 
        } 
    } 
     
    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. 
    } 
     
    ?>

Discussions similaires

  1. JBoss 6 : ajouter un dossier pour y uploader des fichiers
    Par isien dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 19/05/2011, 15h38
  2. Réponses: 2
    Dernier message: 08/12/2010, 12h59
  3. [FTP] Suppression de fichiers avec unlink
    Par rodgeur62 dans le forum Langage
    Réponses: 8
    Dernier message: 03/06/2008, 10h45
  4. [Joomla!] ajouter un lien pour voir tous les items
    Par htr999 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 9
    Dernier message: 24/05/2008, 18h22
  5. [serveur ftp] Problème de droit d'écriture pour un utilisateur
    Par Louis-Guillaume Morand dans le forum Administration système
    Réponses: 39
    Dernier message: 02/07/2007, 09h30

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