Foros del Web » Programando para Internet » PHP »

rutas en includes

Estas en el tema de rutas en includes en el foro de PHP en Foros del Web. Hola, tengo una pregunta, cual es la forma correcta de hacer includes? El caso es que cada vez que hago un include tengo problemas ejempl: ...
  #1 (permalink)  
Antiguo 07/07/2006, 07:27
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 2 meses
Puntos: 6
rutas en includes

Hola, tengo una pregunta, cual es la forma correcta de hacer includes?

El caso es que cada vez que hago un include tengo problemas

ejempl: tengo un directorio llamado nosotros, y en el root tengo las paginas como header.php, menu.php etc, pero al momento de hacer los includes en las paginas que estan dentro del directorio nosotros, pues tengo problemas con imagenes, y hasta con los mismos archivos incluidos

como lo hago es asi
../header.php donde header esta en el root y lo estoy incluyendo en las paginas que estan dentro del directorio nosotros.

Alguien me dice por que presento problemas con los despliegue de imagenes que estan en el header y hasta con los links del menu que esta en header?

Saludos
__________________
www.dataautos.com
  #2 (permalink)  
Antiguo 07/07/2006, 08:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cuando dices "root" .. más bien deberías decir "en mi document root" .. por qué no es lo mismo el directorio donde "empieza" (cuelga hacia abajo) tu sitio configurado en ese servidor .. que el "root" (raiz) de ese servidor completo.

Esto es importante conocerlo para que definas rutas -absolutas- hacia tus scripts y así no tengas problemas desde donde los llamas. Por ejemplo te puedes ayudar de la variable:

$_SERVER['DOCUMENT_ROOT']

Ejemplo:

Si en tu servidorX .. tu "document root" apunta a:
/var/www/sitio.com/public_html/

y de ahí cuelga tu sitio ..

Tus "include()" deberían ser:
include("/var/www/sitio.com/public_html/header.php");

Digo "deberían ser" para que puedas llamar por ejemplo a ese "header.php" desde donde quieras .. desde cualquier nivel (rama) sin problemas. Para eso, .. usa la variable mencionada que te dará esa ruta en el servidor que corras ese script:

Código PHP:
include($_SERVER['DOCUMENT_ROOT']."/header.php"); 
De esta forma .. sin uso de rutas "relativas" (los ./ o ../) dependiendo del caso .. no tendrás problemas de donde llamas tus scripts.

Para los "links" hacia imagenes y similar debes apuntarlos a tu URL de tu sitio:

http://www.nose.tal/imagenes/nose.tal

Esa ruta absoluta la podrías definir como constante (define() ...) y usarla donde corresponda (también hay variables en $_SERVER para tal fin que no recuerdo ahora ..).

Sé que es "engorroso" ese método y depende mucho de PHP .. pero es la única forma de no depender de donde tienes tus scripts (que generan ese HTML) ni de donde los llamas.

Un saludo,


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 07/07/2006, 08:13
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 2 meses
Puntos: 6
Gracias Cluster, dejame probar

Saludos
__________________
www.dataautos.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:02.