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. Buenas, acostumbro a hacer los includes de esta manera: Código: include($_SERVER['DOCUMENT_ROOT'] . "/carpeta/archivo.php"); // <- esta es la linea 4 Tanto en mi iis local ...
  #1 (permalink)  
Antiguo 25/01/2007, 17:56
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Problema con include

Buenas, acostumbro a hacer los includes de esta manera:
Código:
include($_SERVER['DOCUMENT_ROOT'] . "/carpeta/archivo.php"); // <- esta es la linea 4
Tanto en mi iis local con windows 2K como en un hosting linux funciona.

Ahora bien, en otro hosting (...que creo es windows 2003...) hice el include de esa manera y me da el siguiente error:

Cita:
Warning: main(): Unable to access D:\/carpeta/archivo.php in D:\vhosts\elsitioencuestion.com\httpdocs\carpeta\I ndex.php on line 4

Warning: main(/carpeta/archivo.php): failed to open stream: No such file or directory in D:\vhosts\elsitioencuestion.com\httpdocs\carpeta\I ndex.php on line 4

Warning: main(): Failed opening '/carpeta/archivo.php' for inclusion (include_path='.;./includes;./pear') in D:\vhosts\elsitioencuestion.com\httpdocs\carpeta\I ndex.php on line 4
¿Alguna idea?
Gracias

Me olvidaba, marco en bold las diferentes versiones del windows por si tiene algo que ver
  #2 (permalink)  
Antiguo 25/01/2007, 18:32
Avatar de Gurrutello  
Fecha de Ingreso: enero-2002
Ubicación: Ontario,Toronto [Canada]
Mensajes: 2.017
Antigüedad: 22 años, 3 meses
Puntos: 6
Re: Problema con include

Hola
Lo mas probable es que el servidor no tenga definida la variable $_SERVER['DOCUMENT_ROOT']
prueba con este codigo
Código PHP:
if(!isset($_SERVER['DOCUMENT_ROOT']))
{
$n $_SERVER['SCRIPT_NAME'];
$f ereg_replace('\\\\''/',$_SERVER['SCRIPT_FILENAME']);
$f str_replace('//','/',$f);
$_SERVER['DOCUMENT_ROOT'] = eregi_replace($n""$f);

a ver si te funciona.
Saludos
__________________
Un Saludo
www.tutores.org
Asp | Php | Javascript | Perl | Coldfusion | Flash | +- 2000 codigos
  #3 (permalink)  
Antiguo 25/01/2007, 20:22
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Re: Problema con include

hola master, lamentablemente no me está funcionando. no sé si es que tengo sueño o qué, pero no lo pude hacer andar con tu código ni con algunos otros encontrados en http://www.php.net/manual/en/reserved.variables.php (de las contribuciones de usuarios). acabo de enviar un mensaje a la mesa de ayuda del deplorable hosting que estoy usando a ver si me dan una solución... tal vez pasado mañana me respondan... con suerte...

bueno, me retiro a dormir, mañana será otro día ;)
saludos
__________________
...___...
  #4 (permalink)  
Antiguo 25/01/2007, 21:03
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Re: Problema con include

todavía por acá y la única forma que encontré al momento es colocar la ruta completa al archivo a incluir:

Código:
include("x:/vhosts/eldominioencuestion.com/httpdocs/carpeta/archivo.php");
Igual, tanto esa solución como la tuya, Gurrutello, me parece una cagada. No porque sea tuya, claro, sino porque se pierde toda esencia de un include! O sea, debería recurrir a código reiterativo en TODOS los archivos para poder hacer un infame include cuando el código reiterativo debería estar, precisamente, dentro de un include.

Tal vez me esté ahogando en un vaso de agua... err... cerveza... pero soy tan newbie con php que no le veo una solución limpia por código.
__________________
...___...
  #5 (permalink)  
Antiguo 25/01/2007, 22:14
Avatar de Gurrutello  
Fecha de Ingreso: enero-2002
Ubicación: Ontario,Toronto [Canada]
Mensajes: 2.017
Antigüedad: 22 años, 3 meses
Puntos: 6
Re: Problema con include

hola
llo mejor es que hagas un
phpinfo();

este te devolvera los resultados si el servidor soporta document.root
saludos
__________________
Un Saludo
www.tutores.org
Asp | Php | Javascript | Perl | Coldfusion | Flash | +- 2000 codigos
  #6 (permalink)  
Antiguo 26/01/2007, 00:29
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Re: Problema con include

no entiendo porque necesitar toda la ruta para un include.. si es mas facil trabajar con estructura de carpetas que con una estructura desde servidor..
  #7 (permalink)  
Antiguo 26/01/2007, 04:04
Avatar de vb2005  
Fecha de Ingreso: noviembre-2005
Ubicación: Paderborn - Alemania
Mensajes: 566
Antigüedad: 18 años, 5 meses
Puntos: 24
Re: Problema con include

porque no haces un include sin server root? osea no entiendo... si esta dentro de lo publico
  #8 (permalink)  
Antiguo 26/01/2007, 10:44
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Re: Problema con include

Hola erlingfiallos y vb2005:

Suponiendo que tenga esta estructura raiz/carpeta1/carpeta2/carpeta3/ y el archivo include.php está en la raíz, ¿me están sugiriendo que haga los includes de esta manera?

Código:
raiz/:
include("includes.php");

raiz/carpeta1/:
include("../includes.php");

raiz/carpeta1/carpeta2/:
include("../../includes.php");

raiz/carpeta1/carpeta2/carpeta3/:
include("../../../includes.php");
¿O hay otra manera, sin usar $_SERVER['DOCUMENT_ROOT'] y sin tener que "viajar" por toda la estructura de carpetas, para llegar al archivo? Espero que si la haya :)
__________________
...___...
  #9 (permalink)  
Antiguo 26/01/2007, 10:57
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Re: Problema con include

Y si intentas usando
Código PHP:
ini_set('include_path','D:\vhosts\elsitioencuestion.com\httpdocs\carpeta');
include(
"archivo.php"); //considerando que esta en D:\vhosts\elsitioencuestion.com\httpdocs\carpeta 
__________________
Sin Ideas
  #10 (permalink)  
Antiguo 26/01/2007, 11:27
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Re: Problema con include

Hola, por el momento lo he solucionado así...

Código:
if($_SERVER['HTTP_HOST'] == "localhost" || $_SERVER['HTTP_HOST'] == "127.0.0.1"){
	$dr = $_SERVER['DOCUMENT_ROOT'];
}
else{
	$dr = "D:/vhosts/elsitioencuestion.com/httpdocs";
}
include($dr . "/carpeta/archivo.php");
... que funciona, pero me parece una cagada por (1) si el hosting, sea por el motivo que sea, se le ocurre cambiar la unidad de disco o modificar de cualquier manera la ruta física donde está el sitio, dejaría de funcionar el include y (2) ese código lo tiengo que repetir en absolutamente todas las páginas que deban hacer uso de un include... con lo cual, estoy usando código reiterativo para poder evitarlo usando includes :llorar:

Creo, [B]oso96_2000[B], que tu propuesta incurriría en lo mismo (tengo que hacer el IF para que funcione tanto en local como en el hosting y, además, uso código reiterativo) así que no la probé. Mientras, quedo a la espera de la respuesta del hosting (o de otra propuesta de ustedes)

Saludos y gracias
__________________
...___...
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 18:37.