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 :

Problème include avec différents répertoires


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Novembre 2006
    Messages : 60
    Points : 41
    Points
    41
    Par défaut Problème include avec différents répertoires
    Si je vous écris, c'est que vous pensez bien que j'ai un petit soucy,je suis actuellement en stage dans une école où je réalise un site internet.

    Pour des raisons d'organisation, je m'éfforce à mettre différents dossiers où je range mes fichiers php. Un pour la connexion, un pour les fonctions, etc ...

    Je vous présente la structure des fichiers que j'utilise et qui pose problème :
    j'utilise 2 répertoires :
    - connexion/liste_connexion.php : page qui présente les connexions établient
    et au même niveau de répertoire, pour caricaturer le répertoire suivant est frère avec connexion ...
    - fonctions/connexionBDD.php : fonctions qui se connecte à la BDD

    mon code est le suivant pour utiliser la fonction depuis liste_connexion.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    include("../fonctions/connexionBDD.php");
    // .. pour retourner à la racine de mon site
    Ce qu'il y a de supprenenant, c'est que le résultat attendu est affiché mais en dessous des erreurs!

    Mais avec une belle erreur ci dessus:
    Warning: include(../fonctions/connexionBDD.php) [function.include]: failed open stream: No such file or directory in E:\wamp\www\Ecole\connexion\liste_connexion.php on line 2

    Warning: include()[function.include]:failed opening '..:fonctions/connexionBDD.php' for inclusion (include_path='.;C:\php5\pear') in
    E:\wamp\www\Ecole\connexion\liste_connexion.php on line 2
    Donc voilà je ne sais plus où donner de la tête après de multiples recherches et je précise que le ligne 2 est le bout de code que j'ai donné plus haut

    en trifouillant encore sur le net : j'ai trouvé cela :

    Warning: Failed opening 'nom de fichier' for inclusion (include_path='') in nom du script php on line numéro de ligne
    Traduction:

    Attention: Echec à l'ouverture du fichier nom de fichier lors de l'inclusion
    La théorie:

    Le fichier à inclure n'a pas été trouvé.
    En pratique:

    Votre script entre dans les cas de figure suivants:

    1. Le fichier (ou le chemin du fichier) n'existe effectivement pas
    Solution: Corriger le nom du fichier passé en paramètre de la fonction include (ou le chemin).
    2. Le fichier existe mais est inclus dans un script qui lui même est inclus dans un autre, et les chemins donnés sont des chemins relatifs. Comme les chemins relatifs des fichiers inclus sont relatifs au script executé. Si c'est un script A qui est executé et qui inclus un script B, qui lui même inclus in script C. Alors le chemin relatif du script C indiqué dans le script B, doit être relatif à la position du script A (le script executé). Ceci pose généralement problème car dans ce cas il est possible que le chemin ne soit plus valide si on execute directement le script B (le chemin relatif du script C indiqué dans le script B, devra alors être relatif à la position du script B). Il faut donc toujours donner un chemin complet ou bien déterminer dynamiquement le chemin relatif.
    Solution:On peut aisement s'en sortir en utilisant la constante __FILE__ qui donne le chemin et le nom du script (pas celui qui est appelé mais celui qui fait l'include). Il faudra alors remplacer les include("chemin_relatif/script.php") par include(dirname(__FILE__)."/chemin_relatif/script.php").

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    include(dirname(__FILE__)."/chemin_relatif/script.php");
    ?>
    Il est vrai que j'incluais 2 fois la même page dans une page, donc j'ai alors suivi leur conseil. J'ai même créé une fonction qui me permet de ne pas l'appelais 2 fois, mais toujours le même problème. Disons que maintenant je l'appelle 2 fois mais différament, je vous laisse comprendre avec un bout de code :

    Code : PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    session_start();
    include (dirname(__FILE__)."/fonctions/connexionBDD.php");
    function coordonnees()
    {
       // ici on insére l'adresse de l'école dans la bannière
       try
       {

    Donc en ayant toujours le même problème, j'ai utilisé "dirname(__FILE__)". Mais rien non plus. Donc peut-être l'un d'entre vous à une idée après ces précisions ... Du moins je l'espère.

    Merci Beaucoup
    Cordialement


    2berte

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Si c'est juste un problème de double inclusion, utilise include_once().

Discussions similaires

  1. Réponses: 11
    Dernier message: 04/05/2011, 12h37
  2. problème : problème include avec 2 Form (pitié !)
    Par antoile dans le forum VC++ .NET
    Réponses: 6
    Dernier message: 04/05/2007, 16h02
  3. problème espace avec include
    Par gforce dans le forum Langage
    Réponses: 5
    Dernier message: 09/11/2006, 13h50
  4. Problème d'include avec une section critique.
    Par radicalrider dans le forum Visual C++
    Réponses: 21
    Dernier message: 12/07/2006, 15h38
  5. problème include avec win 2003 / IIS6
    Par fredoche dans le forum ASP
    Réponses: 3
    Dernier message: 26/09/2005, 17h36

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