Problème require_once

Problème require_once - PHP - Programmation

Marsh Posté le 16-09-2008 à 17:02:05    

Bonjour, j'ai un petit problème de chemin php...
 
Voici l'arboresence de mon site (le tout situé dans /htdocs/) :
 

Code :
  1. /site/lib/class/class.php (require_once(./lib/dao/dao.php))
  2. /site/lib/dao/dao.php
  3. /site/lib/util/grille.php (require_once(./lib/class/class.php))
  4. /site/lib/util/database.php (require_once(../class/class.php))
  5. /site/home.php (require_once(./lib/util/grille.php))
  6. /site/test.php (require_once(./lib/class/class.php))


 
Quand le lance test.php, tout se passe bien, j'ai accès au méthode de dao.php.
Cependant, quand je lance home.php, j'ai une erreur (dans class.php) me disant que ./lib/dao/dao.php n'existe pas.
 
Pouvez-vous me dire pourquoi, et le cas échéant, comment bien réaliser mes include ?


---------------
Un être en tant qu'être ne pourrait-il pas être autre qu'il n'est s'il n'explique pas lui-même son être ?
Reply

Marsh Posté le 16-09-2008 à 17:02:05   

Reply

Marsh Posté le 16-09-2008 à 17:05:09    

Le mieux souvent est d'utiliser des chemins absolus, dans class.php met :

Code :
  1. require_once dirname(__FILE__) . '/../dao/dao.php'

Reply

Marsh Posté le 16-09-2008 à 19:56:44    

En gros y a deux types d'include/require qui sont vraiment valables, et qui permettent de pas avoir de soucis de ce genre.  
 
Si tu veux donner un chemin absolu :

Code :
  1. require $_SERVER['DOCUMENT_ROOT'] . '/chemin/à/partir/du/webroot';


Et si tu préfères y aller en relatif par rapport au fichier, ce qu'a indiqué FlorentG :

Code :
  1. require dirname(__FILE__) . '/chemin/à/partir/du/fichier/courant';


(Cette dernière écriture produit au final un chemin absolu.)


Message édité par sielfried le 16-09-2008 à 19:57:36

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed