Foros del Web » Programando para Internet » PHP »

problema con include

Estas en el tema de problema con include en el foro de PHP en Foros del Web. he tenido ciertos problema a la hora de especificar varias rutas con include, ya que usaba rutas relativas del tipo ("../../../carpeta1/archivo.php") . y he optado ...
  #1 (permalink)  
Antiguo 17/02/2008, 17:11
 
Fecha de Ingreso: octubre-2007
Mensajes: 394
Antigüedad: 16 años, 6 meses
Puntos: 2
problema con include

he tenido ciertos problema a la hora de especificar varias rutas con include, ya que usaba rutas relativas del tipo ("../../../carpeta1/archivo.php") . y he optado por directamente usar la variable _Server(DocumentRoot) que me lleva al directorio principal de mi web y a partir de ahi establezco el path que necesite.

Es una buena opcion esa? si por ejemplo un fichero incluye a otro ficher de la misma carpeta, que es mejor incluirlo con documentRoot (seria crear la ruta desde el comienzo del todo) o directamente poner include ("archivo.php")

Por ultimo, cuando yo suba al servidor mi web, la variable _Server(DocumentRoot) seguira "apuntando" al directorio raiz de mi web, no? pk aber si me va a funcionar en el localhost y luego arriba, esa variable muestra otro dato diferente...

Un saludo
  #2 (permalink)  
Antiguo 17/02/2008, 17:20
 
Fecha de Ingreso: junio-2007
Ubicación: por ahi
Mensajes: 262
Antigüedad: 16 años, 10 meses
Puntos: 4
Re: problema con include

Lo primero que hay que hacer para saber que te arrojara arriba y abajo esa variable es correr un script con la funcion phpinfo(); alli da toda la informacion del servidor.

Si un archivo esta incluido en la misma carpeta no hay necesidad de mas. simpre va a funcionar.
  #3 (permalink)  
Antiguo 17/02/2008, 17:40
 
Fecha de Ingreso: octubre-2007
Mensajes: 394
Antigüedad: 16 años, 6 meses
Puntos: 2
Re: problema con include

vale entonces si esta en la misma carpeta, lo incluyo sin mas, sin lios. y si esta perdido por las carpetas utilizo la otra forma. y generalmente que suele arrojar document_root en el servidor? es que imaginate que hago muchos includes usando eso yluego lo subo a un hosting y no me tira nada........puede ser un gran coñazo buscar todo y cambiar los includes, imagenes....etc....
  #4 (permalink)  
Antiguo 17/02/2008, 19:40
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: problema con include

Lo que yo suelo hacer es generar una constante ROOT en cada página, y luego usar esta constante para todos los includes:

Páginas en un directorio de primer nivel
Código PHP:
define('ROOT','.');
 
include 
ROOT.'includes/archivo.php');
 
### Más código
 
include ROOT.'includes/archivo2.php'); 
Páginas en un directorio de segundo nivel
Código PHP:
define('ROOT','..');
 
include 
ROOT.'includes/archivo.php');
 
### Más código
 
include ROOT.'includes/archivo2.php'); 
Páginas en un directorio de tercer nivel
Código PHP:
define('ROOT','../..');
 
include 
ROOT.'includes/archivo.php');
 
### Más código
 
include ROOT.'includes/archivo2.php'); 
Un include dentro de archivo2.php
Código PHP:
include ROOT.'otro_archivo.php'
No uso el $_SERVER['DOCUMENT_ROOT']; porque dará problemas si hay que cambiar el nivel de todo el sitio (p.ej. de http://www.misitio.com/ a http://www.misitio.com/carpeta/

Un saludo,
  #5 (permalink)  
Antiguo 18/02/2008, 02:43
 
Fecha de Ingreso: octubre-2007
Mensajes: 394
Antigüedad: 16 años, 6 meses
Puntos: 2
Re: problema con include

ya pero bueno, eso es lo mismo que no declarar la variable root y directamente en cada archivo poner el path completo ../.../archivo.php
el tuyo es algo mas vistoso pero ofrece alguna utilidad mas? es que no la veo y puede que si la haya.

UN SALUDO Y GRACIAS
  #6 (permalink)  
Antiguo 18/02/2008, 14:37
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: problema con include

Si tienes que cambiar la ruta pues ya no es necesario cambiar en cada include, solo cambias el valor de la constante y listo. Además, como dije, esta constante está disponible también en los includes que puedas hacer dentro de un include. Vamos, puede ser también una variable, pero usando constantes no existe el riesgo de que por error vayas a alterar su valor (Las constantes no pueden ser cambiadas una vez definidas).

Un saludo,
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 02:39.