Tengo un problemilla y no lo puedo resolver porque no lo entiendo.
Resulta que tengo una web en la que la estructura es la siguiente (la parte que nos interesa, claro):
/Carpeta Administracion/
| |---> index.php
| |---> ... (resto de archivos que no vienen al caso)
|
|
/Carpeta Clases/
| |---> clase1.php
| |---> clase2.php
| |---> config.php
|
|
/Carpeta Contenidos/
| |---> archivo_de_contenido1.php
| |---> archivo_de_contenido2.php
| |---> ... (resto de archivos)
|
|
index.php
Sencillo, verdad?
El tema es que no tengo ningún problema... en esta web (a la que llamaré web1).
Pero lo he copiado en otro servidor, para crear otra web (a la que llamaré web2), y tengo un problema que me parece raro.
Para el funcionamiento de la web, y concretamente para el proceso de interactución con la base de datos, uso una clase.
Ésta clase hace referencia a un archivo de configuración con las variables que necesito, de este modo sólo tengo que cambiar estos valores para cada web.
En el archivo de la clase, para cargar el archivo de configuración con los datos que necesito lo hago así:
Código PHP :
require 'config.php';
La llamada de la clase desde el index.php de la carpeta Administracion las hago así:
Código PHP :
require '../clases/clase1.php';
Y las llamadas de la clase desde los archivos de la carpeta de contenidos las hago así:
Código PHP :
require 'clases/clase1.php';
(Los archivos de la Carpeta Contenidos son archivos que cargan secciones de la web (cabecera, menu, etc.))
El problema es que en la web1 esto me funciona. Pero en la web2 no lo hace!
Resulta que, por lo que he comprobado, no localiza el archivo de configuración (config.php).
Si en cambio, modifico la llamada desde la clase, y se la pongo como en el index de administración, es desde administración desde donde SI funciona, pero no desde la parte publica.
Por el contrario, si lo modifico haciendo la llamada como lo hacen los contenidos de la parte publica, funcionará en la parte publica, pero no en la privada.
Comprendo que esto suceda, ya que los contenidos que carga el index de la carpeta administración tienen la url: http://www.misitio.com/administracion, por el contrario los de la parte publica tienen la url: www.misitio.com. Lo comprendo, aunque hasta cierto punto, porque el archivo, en su forma original está llamando a otro que esta en su misma ubicación. Así que no entiendo este "cambio de perspectiva de carpetas" de una web a la otra, ya que una web entiende que los dos archivos estan en la misma carpeta y para la otra es como si no se estuviera haciendo la llamada a config.php desde la clase, sino desde los archivos index.php.
Alguien me puede mostrar la luz?
Muchas gracias!
Fran.
P.D: Espero no haberme enrollado demasiado y haberme hecho explicar
Lo que no entiendo