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 :

Accès au contenu d'un répertoire


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 90
    Par défaut Accès au contenu d'un répertoire
    Bonjour,
    Je crée un petit gestionnaire de fichiers en PHP (façon artisanale) et je rencontre un problème pour accéder au contenu de mes répertoires.
    Ma base de données contient des liens hypertextes vers des dossiers. J'ai migré les dossiers rattachés dans un dossier REP de www.
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // Etape 1
    $lien="REP/".$lien; 
    // Etape 2
    echo"<a href=\"$lien\">$lien</a>";
    // Etape 3
    if (!is_dir($lien))
    	{
    	// Si le chemin n'existe pas, message d'erreur
    	echo"<p class=\"erreur\"> répertoire non trouvé</p>";
    	}
    else
    	{
    	// Sinon, c'est bon
    	echo"<p class=\"message\">répertoire trouvé<p>";								
    	}
    L'étape 1 fonctionne et créé le chemin absolu vers le dossier
    L'étape 2 fonctionne et m'ouvre une nouvelle fenêtre PHP affichant le contenu du répertoire
    L'étape 3 en revanche ne fonctionne pas. ie même si j'ai pu accéder au contenu du répertoire à l'étape 2, le répertoire n'est pas trouvé.

    Mes chemins sont souvent de la forme REP/REP1/.../REP2/REPFINAL et contiennent de nombreux espaces. Je pense que le problème vient de ces espaces car si je crée le répertoire AZE directement dans REP, il est trouvé.
    Je ne sais pas en revanche comment y remédier et sollicite votre aide sur ce point.
    Merci d'avance

    e/ Je voulais ajouter que ces instructions fonctionnaient sur une version antérieure de l'application. La différence est que je transférais mon lien avec la méthode GET alors qu'ici j'utilise la méthode POST. De plus il me semble qu'avant, le lien dans la barre d'adresse comportait des % et %20 or ici ce n'est plus le cas (même lorsque j'accède au dossier avec l'étape 2).

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2012
    Messages : 16
    Par défaut
    Tu veux dire qu'il y a des espaces dans tes noms de répertoires ? Si oui, effectivement je pense que ça peut pas mal merdouiller...

    Tu pourrais essayer d'enlever les espaces de tes noms de répertoires et traiter les liens que tu reçois dans le POST. Tu supprimes tous les espaces contenus dans le lien pour faire correspondre.

    Autrement si avant le lien comportait des % et %20 (et peut-être d'autres caractères) c'est parce que tu utilisais la méthode GET. En POST aucun paramètre n'est passé dans l'URL donc tu ne vois plus ces caractères là (qui servent à remplacer les caractères spéciaux).

    Luis

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 90
    Par défaut
    Bonjour et merci pour votre réponse,

    La solution d'enlever tous les espaces/caractères spéciaux de mes chemins n'est malheureusement pas envisageable car je travaille avec des centaines de répertoires et je me vois mal les renommer un à un. Surtout si je dois refaire le travail côté MySQL.

    Est-il possible de traiter les liens pour qu'ils soient trouvés par is_dir? A vrai dire je ne comprend pas pourquoi l'étape 2 trouve le chemin et m'affiche le contenu du répertoire dans une nouvelle fenêtre alors que l'étape 3 (is_dir) ne le trouve pas. Il s'agit pourtant bien du même lien.

  4. #4
    Membre chevronné

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Billets dans le blog
    1
    Par défaut
    Essaies de donner à is_dir() le chemin absolu vers ton dossier (non pas juste "./mon_repertoire" mais "c:/wamp/www/mon_repertoire") ?
    si ce post vous a été utile, si votre problème est résolu.
    Pensez-y !
    __________________________________
    Doc officielle PHP | FAQ PHP | Cours PHP

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 90
    Par défaut
    J'ai remplacé ligne 2 par :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $lien="c:/wamp/www/REP/".$lien;

    et j'obtiens le message suivant :
    L'adresse n'a pas été reconnue
    Firefox ne sait pas ouvrir cette adresse car le protocole (c) n'est associé à aucun programme.

    e/
    Avec :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $lien="__DIR__/../../DOSSIERINSTANCE/".$lien;
    j'obtiens la même chose qu'avec le chemin relatif : accès au dossier via href OK, is_dir ne trouve pas

    e2/
    Bon je me sers un peu de ce sujet comme bloc note mais je suis toujours sur le problème, j'ai essayé d'ouvrir mon lien avec opendir et j'ai l'erreur suivante
    Warning: opendir(REP/REP1/REP2/REP3/REPFINAL)
    [<a href='function.opendir'>function.opendir</a>]: Le chemin d�acc�s sp�cifi� est introuvable. (code: 3) in C:\wamp\www\x.php on line x
    Deux points m'intriguent :
    - le chemin indiqué entre parenthèse est sans erreurs, les accents et espaces sont corrects.
    - le <a href> suggère que la fonction opendir fonctionne comme un lien. Alors pourquoi mon lien href fonctionne et pas opendir?

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2012
    Messages : 16
    Par défaut
    Essaie de commencer ton chemin par "/"

    J'ai vu que tu avais mis dans ton code de départ:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // Etape 1
    $lien="REP/".$lien;
    essaie avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // Etape 1
    $lien="/REP/".$lien;

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

Discussions similaires

  1. [AC-2003] Accès au contenu d'un répertoire
    Par STOUPI dans le forum VBA Access
    Réponses: 1
    Dernier message: 10/02/2010, 14h21
  2. Réponses: 3
    Dernier message: 28/10/2008, 14h20
  3. Copier le contenu d'un répertoire
    Par bianconeri dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/12/2006, 14h00
  4. Copie du contenu d'un répertoire vers un autre
    Par IG88 dans le forum Windows
    Réponses: 4
    Dernier message: 30/07/2004, 15h33
  5. [DOM] Accès au contenu textuel d'un noeud avec DOM
    Par comexe2 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 16/07/2004, 16h41

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