Tengo un error bastante curioso, tanto que me está llegando a desesperar. Yo tenía una aplicación corriendo en un servidor PHP (versión 4) y todo iba bien.
Cambiamos de servidor (PHP 5) y la aplicación muestra errores en los includes.
Resulta que si yo en el archivo A tengo un include del archivo B y en este archivo B tengo un include a un archivo C, el A toma el include de C como suyo propio. Supongo que me he explicado fatal así que lo pongo más clarito.
ARCHIVO A:
include_once ("carpetaX/archivoB.php");
ARCHIVO B:
include_once ("subCarpetaX/archivoC.php");
Resulta que el error es que dice que no encuentra la ruta "subCarpetaX/archivoC.php" desde el archivo A. ¡¡¡¡Pero yo no estoy llamando al archivoC desde el A, sino desde el B.
Si pongo la ruta absoluta en lugar de la relativa todo va bien, pero tendría que modificar toda la aplicación además de ser una porquería de programación.
si lo hago así iría bien:
ARCHIVO A:
include_once ("carpetaX/archivoB.php");
ARCHIVO B:
include_once ("carpetaX/subCarpetaX/archivoC.php");
He mirado de todo, desde el php.ini (open_basedir e include_path) pero resulta que tenemos un servidor dedicado con un mantenimiento contratado y nos dicen que todo está perfecto. Tampoco sé si puede ser por las versiones de PHP que son distintas, pero ando muy muy perdido a estas alturas.
Espero que alguien haya tenido el mismo problema y pueda hacerme ver la luz.
Un saludo.