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 :

Vérifier si un dossier parent est "interdit" pour éviter le warning


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 12
    Par défaut Vérifier si un dossier parent est "interdit" pour éviter le warning
    Bonjour,

    Je suis en train de faire une fonction qui affiche le contenu du répertoire où le fichier php se situe. On peut aussi cliquer sur un dossier (. et .. inclus) pour pouvoir se déplacer dans le serveur (ca rappelle la page avec le dossier en parametre).

    Ca marche sauf dans un cas précis : c'est sur un serveur free qui limite l'accès au dossiers parents de mon compte racine. Donc quand je suis dans ma racine "/mnt/154/sdb/b/4/user/" le serveur met un message d'erreur car je ne peux faire aucune action sur le ".." :

    Warning: file_exists() [function.file-exists]: Unable to access /mnt/154/sdb/b/4/user/.. in /mnt/154/sdb/b/4/user/fonctions.php on line 19
    Je comprends bien ne pas avoir le droit d'y accéder mais tout ce que je veux c'est savoir si c'est un dossier "interdit" (dans ce cas il n'est considéré ni comme un fichier ni comme un dossier) pour ne pas le traiter et signaler sur ma page que c'est la racine. Je précise que cette fonction n'est pas que pour ce serveur, elle doit pouvoir être utilisée n'importe où.

    Peu importe la fonction que j'utilise (file_exists, is_file, is_dir...), j'obtiens toujours un warning.

    Existe-t-il une fonction qui pourrait faire cette vérification sans envoyer de warning? Ou connaissez-vous une autre solution?

    Merci d'avance.

    PS : Désolé si c'est pas le bon sous forum, j'ai hésité avec fonction mais comme ca concerne un "fichier"...

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 12
    Par défaut
    Je viens de résoudre mon problème en essayant d'en résoudre un autre . Je me demande quand même s'il y a une solution plus propre, moins bricolage. Hésitez pas à proposer.

    Voila la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //Dans le cas posant probleme, les valeurs des variables sont :
    $rep="/mnt/154/sdb/b/4/user/"; //dossier courant
    $_SERVER['DOCUMENT_ROOT']="/mnt/154/sdb/b/4/user"; //dossier racine
    $entry=".."; //par un readdir($handle)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ($rep!=$_SERVER['DOCUMENT_ROOT']."/" || $entry!="..")
    {
    //On balance tout les is_dir ou is_file qu'on veut et il n'y a plus de warning :)
    }
    Je mettrai [Resolu] dans quelques jours histoire de voir si quelqu'un a une meilleur solution.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/10/2010, 18h47

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