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 :

require_once : ne trouve pas le fichier


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 24
    Points : 19
    Points
    19
    Par défaut require_once : ne trouve pas le fichier
    Bonjour,

    Dans index.php, je fais un include de database.php, lui même avec un require_once de config.php.

    J'ai ce problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: mysql_connect() [function.mysql-connect]: php_network_getaddresses: getaddrinfo failed: Hôte inconnu. in C:\xampp\htdocs\phpbeyond\Chapter06\06_03_photo_gallery\includes\database.php on line 13
    Je corrige ce problème en faisant require_once("../includes/config.php");.

    Mais pourtant config.php est dans le même répertoire que database.php.

    Et sur un autre poste, ça marche avec seulement require_once("config.php");.

    Pourquoi dois-je alors mettre ../includes/ ?

    C'est comme si en faisant require pour database.php, le script se positionne où est index.php, et donc doit aller chercher avec ../includes/.

    Et sur mon autre poste, c'est comme si le script se positionne où est database pour aller prendre config.php au même endroit, sans le ../includes.

    Merci de votre aide,

    Patrick

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Correction :
    "Dans index.php, je fais un require_once de database.php, lui même avec un require_once de config.php."

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    regarde la différence entre require_once() et require()
    L'instruction require_once est identique à require mise à part que PHP vérifie si le fichier a déjà été inclus et si c'est le cas, ne l'inclut pas une deuxième fois.
    Certaines fichiers/fonctionnalités ont besoin d'être inclus PLUSIEURS fois.
    C'est notamment le cas de la connexion, au sein des function ...()

    Une autre raison possible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once("../includes/config.php");
    C'est ici un chemin RELATIF.
    Pour peu que le fichier soit appelé d'un autre niveau/endroit dans l'arborescence, il ne le trouvera plus.
    Si les 2 fichiers sont dans le même dossier, utilise __DIR__ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once(__DIR__."/config.php");
    ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once(dirname (__DIR__)."/includes/config.php");

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    merci,

    ça marche avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once(__DIR__."/config.php")

    Mais pourquoi sur mon autre poste je n'ai pas besoin de mettre le __DIR__. ?


    Patrick

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Bonjour,
    Quelqu'un aurait une idée?

    Merci!
    Patrick

  6. #6
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Certainement à cause de la directive du php.ini

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include_path = ".;[dir]"

  7. #7
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut
    Bonjour,

    En effet, regarde du côté de l'include path. Tu peux éditer l'include path pour ton projet spécifiquement avec un set_include_path (http://php.net/manual/en/function.set-include-path.php).

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    Merci, mais ce n'est pas "include_path" car il est identique sur les 2 postes.

    Je me demande bien c'est quoi alors...


    Patrick

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/12/2007, 11h53
  2. ma dll ne trouve pas ses fichiers de configuration
    Par mokoyat dans le forum Windows
    Réponses: 3
    Dernier message: 04/09/2007, 18h16
  3. navigateur ne trouve pas le fichier PHP
    Par skandaboy dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 14/03/2007, 21h23
  4. Je ne trouve pas le fichier Struts-Config.xml
    Par masse dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 06/10/2006, 10h33
  5. [FEDORA] Je ne trouve pas les fichiers includesous Feodra core 3 ?
    Par sali dans le forum RedHat / CentOS / Fedora
    Réponses: 4
    Dernier message: 22/10/2005, 23h30

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