Foros del Web » Programando para Internet » PHP »

Problema con las urls de los include

Estas en el tema de Problema con las urls de los include en el foro de PHP en Foros del Web. Hola, Estoy haciendo una aplicacion web, y hasta ahora no me ha dado ningun error, pero ahora me empieza a dar error los include: @import ...
  #1 (permalink)  
Antiguo 24/07/2010, 10:09
 
Fecha de Ingreso: marzo-2008
Mensajes: 20
Antigüedad: 16 años, 1 mes
Puntos: 0
Problema con las urls de los include

Hola,

Estoy haciendo una aplicacion web, y hasta ahora no me ha dado ningun error, pero ahora me empieza a dar error los include:

Código HTML:
Ver original
  1. Warning: include_once(classes/AccesoBD.php) [function.include-once]: failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/Psycotrip/classes/Proyecto.php on line 2
  2.  
  3. Warning: include_once() [function.include]: Failed opening 'classes/AccesoBD.php' for inclusion (include_path='.:/Applications/XAMPP/xamppfiles/lib/php:/Applications/XAMPP/xamppfiles/lib/php/pear') in /Applications/XAMPP/xamppfiles/htdocs/Psycotrip/classes/Proyecto.php on line 2
  4.  
  5. Warning: include_once(classes/Proyecto_Documento.php) [function.include-once]: failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/Psycotrip/classes/Proyecto.php on line 3
  6.  
  7. Warning: include_once() [function.include]: Failed opening 'classes/Proyecto_Documento.php' for inclusion (include_path='.:/Applications/XAMPP/xamppfiles/lib/php:/Applications/XAMPP/xamppfiles/lib/php/pear') in /Applications/XAMPP/xamppfiles/htdocs/Psycotrip/classes/Proyecto.php on line 3
  8.  
  9. Warning: include_once(classes/Proyecto_Persona.php) [function.include-once]: failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/Psycotrip/classes/Proyecto.php on line 4
  10.  
  11. Warning: include_once() [function.include]: Failed opening 'classes/Proyecto_Persona.php' for inclusion (include_path='.:/Applications/XAMPP/xamppfiles/lib/php:/Applications/XAMPP/xamppfiles/lib/php/pear') in /Applications/XAMPP/xamppfiles/htdocs/Psycotrip/classes/Proyecto.php on line 4
  12.  
  13. Fatal error: Class 'Db' not found in /Applications/XAMPP/xamppfiles/htdocs/Psycotrip/classes/Proyecto.php on line 140

Los archivos estan en varios directorios anidados, la estructura se puede ver en este link

http://www.imaxenes.com/imagen/captura_de_pantalla_2010_07_24_a_las_171aq57dm.png .html

Y yo siempre he puesto las urls de forma completa, por ejemplo si quiero acceder al archivo Proyecto.php, que se encuentra en el directorio classes:

include_once("classes/Proyecto.php");

Nunca me habia dado problemas hasta ahora, no se si hice algo mal. un saludo y gracias!
  #2 (permalink)  
Antiguo 24/07/2010, 11:46
Avatar de perryjr  
Fecha de Ingreso: julio-2010
Ubicación: Granada, Spain, Spain
Mensajes: 190
Antigüedad: 13 años, 8 meses
Puntos: 27
Respuesta: Problema con las urls de los include

O mucho me equivoco o tu archivo "classes/Proyecto.php" está intentando pedir el archivo "lasses/AccesoBD.php" y eso va a resultar en pedir el archivo "/classes/classes/AccesoBD.php"

La solución? 3 maneras.

La primera sería meter tu las direcciones. Es decir poner la ruta con dos puntos, o sin carpeta en este caso porque están en la misma.

ADVERTENCIA: Recuerda que incluir un archivo PHP en la práctica sería algo así como meterlo en el que lo pide. Por ejemplo: Proyecto.php pide AccesoDB y es como si el código de AccesoDB estuviera insertado en Proyecto.php, con lo cual cualquier referencia a otros include's que tengas en AccesoDB se procesarían como si estuvieran en Proyecto.php y lo que en un principio está bien, si lo incluyes desde otra página en alguna otra subcarpeta podría estar mal

2ª método: puede que no te convenga, pero si te sirve, pues voilà!: usar direcciones absolutas a los archivos. ejemplo en windows: C:/xampp/xamppfiles/... Es poco práctico porque si mueves los archivos, se cambian las carpetas.

3er método(es el que uso yo ): Inicializa una variable algo así como $root_path o algo así en cada archivo que se vaya a pedir al servidor(es decir, dudo mucho que AccesoDB.php sea una página, simplemente es código para incluir no? lo metes en páginas como index.php). En la variable metes la ruta con dos puntos, carpetas, etc a un directorio base que tu elijas(psycotrip, por ejemplo) y luego la usas en los include's para poner la ruta.

Ejemplo:

index.php:
Código PHP:
Ver original
  1. <?php
  2. $root_path = '../'; // Hacemos referencia a la carpeta psycotrip
  3. include($root_path . 'classes/Proyecto.php');
  4. ?>

Proyecto.php
Código PHP:
Ver original
  1. <?php
  2. // Recuerda que al incluir el archivo tendrás acceso a la variable global $root_path
  3. include($root_path . 'classes/AccesoDB.php');
  4. ?>

etc.....

Así estés donde estés e incluyas el archivo que incluyas tendrás una referencia a la carpeta base que te ayudará a construir las direcciones.
  #3 (permalink)  
Antiguo 24/07/2010, 14:15
 
Fecha de Ingreso: marzo-2008
Mensajes: 20
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Problema con las urls de los include

ey Muchas gracias por contestar tan pronto! Ahora no lo puedo probar lo que explicas, pero mañana me pongo con ello y te cuento! un saludo!
  #4 (permalink)  
Antiguo 26/07/2010, 09:59
 
Fecha de Ingreso: marzo-2008
Mensajes: 20
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Problema con las urls de los include

Nada, lo estoy probando y no soy capaz.... intento hacerlo de las tres formas, pero no me acaba de cargar... qué raro...
  #5 (permalink)  
Antiguo 26/07/2010, 10:13
 
Fecha de Ingreso: marzo-2008
Mensajes: 20
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Problema con las urls de los include

Este es el error que me da..... pongo la url entera y me sigue dando error.....


Warning: include_once(.:/Applications/XAMPP/xamppfiles/htdocs/psycotrip/classes/Proyecto.php) [function.include-once]: failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/psycotrip/presentacion/usuario/form/crearproyecto.php on line 4

Warning: include_once() [function.include]: Failed opening '.:/Applications/XAMPP/xamppfiles/htdocs/psycotrip/classes/Proyecto.php' for inclusion (include_path='.:/Applications/XAMPP/xamppfiles/lib/php:/Applications/XAMPP/xamppfiles/lib/php/pear') in /Applications/XAMPP/xamppfiles/htdocs/psycotrip/presentacion/usuario/form/crearproyecto.php on line 4

Fatal error: Class 'Proyecto' not found in /Applications/XAMPP/xamppfiles/htdocs/psycotrip/presentacion/usuario/form/crearproyecto.php on line 5



Sigo admitiendo sugerencias..... :(
  #6 (permalink)  
Antiguo 26/07/2010, 10:46
Avatar de pipev25  
Fecha de Ingreso: septiembre-2009
Mensajes: 93
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema con las urls de los include

Hola, pues el error que veo en si es que estan mal copiadas las rutas de los include deberias verificarlas.

tu carpeta Applications esta dentro o fuera de Www, si es asi antepone ../ dejando que te quede asi

include_once('../Applications/XAMPP/xamppfiles/htdocs/psycotrip/classes/Proyecto.php');
  #7 (permalink)  
Antiguo 26/07/2010, 10:53
 
Fecha de Ingreso: marzo-2008
Mensajes: 20
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Problema con las urls de los include

De momento no lo tengo en ningun servidor, trabajo en local. Yo subiria al servidor el directorio psycotrip... De todas formas el ../ quiere decir ir al directorio raiz? o solamente subir un directorio? No lo entiendo muy bien :S
  #8 (permalink)  
Antiguo 26/07/2010, 12:31
Avatar de pipev25  
Fecha de Ingreso: septiembre-2009
Mensajes: 93
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema con las urls de los include

teoricamente cuando estas en la aplicacion o funcionalidad estas en el index que esta en la carpeta Www, al hacer '../' sales de Www y accedes donde sigue
  #9 (permalink)  
Antiguo 27/07/2010, 06:32
Avatar de perryjr  
Fecha de Ingreso: julio-2010
Ubicación: Granada, Spain, Spain
Mensajes: 190
Antigüedad: 13 años, 8 meses
Puntos: 27
Respuesta: Problema con las urls de los include

CUIDADO edsolla!!! Como te dije al usar direcciones absolutas dependes de que estés en el mismo equipo. Si el servidor tiene otra estructura de carpetas distinta a la tuya no funcionará cunado lo subas. Si lo quieres hacer así te tienes que informar de la estructura del servidor y reproducirla en tu ordenador.

Con tu problema, está claro que por alguna razón no consigue encontrar el archivo.
Pon esto a ver si funciona:

En el archivo psycotrip/presentacion/usuario/form/crearproyecto.php pon esta línea

Código PHP:
Ver original
  1. include_once('../../../classes/Proyecto.php');

¿Te da algún error?

Etiquetas: include, url
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 05:55.