Une façon de tenter de contourner ce problème est en incluant toujours d'où le fichier est compris l'autre fichier est basé:
$here = dirname(__FILE__);
include($here."/../include.php");
// will include a file *allways* one level up from where *this* file is located
// and not the file that started the execution of the script.
J'ai parfois des fichiers qui sont accessibles à partir de plusieurs endroits différents et le chemin du fichier inclus peut devenir un peu difficile à gérer. J'essaie donc généralement d'inclure un fichier de configuration à un point connu puis de définir des chemins vers des points d'inclusion communs.
// from a common config file
define("PATH_TO_CLASS", dirname(__FILE__)."/../class");
define("PATH_TO_MEDIA", dirname(__FILE__)."/../assets/media");
Ensuite, vous pouvez utiliser dans le fichier que vous avez inclus le fichier de configuration comme:
include dirname(__FILE__)."/../config.php";
include PATH_TO_CLASS."/snassy.class.php";
Vous pensez donc que les fichiers inclus ne seront pas inclus? –