Foros del Web » Programando para Internet » PHP »

Problema con include_once, urgente!! :_(

Estas en el tema de Problema con include_once, urgente!! :_( en el foro de PHP en Foros del Web. Hola, estoy haciendo un pequeño proyecto que tengo que terminar ya mismo y no puedo seguir avanzando por un problema que a lo mejor es ...
  #1 (permalink)  
Antiguo 06/06/2009, 10:45
 
Fecha de Ingreso: junio-2009
Mensajes: 5
Antigüedad: 14 años, 10 meses
Puntos: 0
Problema con include_once, urgente!! :_(

Hola,

estoy haciendo un pequeño proyecto que tengo que terminar ya mismo y no puedo seguir avanzando por un problema que a lo mejor es una tonteria, pero a mi me trae loco. He estado buscanso por este foro a ver si encontraba algo parecido, pero no lo encontre. Mi problema es el siguiente:

Los archivos .php los guardo en distintas carpetas: "Nivel1", "Nivel2" y "Nivel3". Para incluir un archivo del Nivel3 en otro del Nivel2 hago lo siguiente:

include_once '../Nivel3/seleccion.inc.php' (o include_once 'Nivel3/seleccion.inc.php', me lo hace bien igual de ambas formas, por si me ibais a comentar el tema del '../', tema que ya probe pero nada).

Peeeero aqui llega el problema: en un archivo del Nivel2, haciendo eso mismo, me lo incluye perfectamente y no hay ningun problema, en cambio si intento hacer lo mismo desde otro archivo del Nivel2 me da este error:

Warning: include_once(Nivel2/seleccion.inc.php) [function.include-once]: failed to open stream: No such file or directory in...


Como puede ser que, estando los dos archivos en la misma carpeta, y realizando el include_once exactamente de la misma forma, en uno me funcione perfectamente y en otro me de error??

Espero que me podais ayudar, porque me es muy urgente.

Muchas gracias de antemano a todos.
  #2 (permalink)  
Antiguo 06/06/2009, 10:56
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Problema con include_once, urgente!! :_(

si dices que estan en la misma carpeta por que no lo incluyes asi:

include_once(seleccion.inc.php)
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #3 (permalink)  
Antiguo 06/06/2009, 11:05
 
Fecha de Ingreso: junio-2009
Mensajes: 5
Antigüedad: 14 años, 10 meses
Puntos: 0
Perdon por si me explique mal, es que tengo la cabeza tan liada que ya no se ni lo que escribo jaja

Las carpetas son "Nivel1", "Nivel2" y "Nivel3", y mi problema es al incluir un archivo que esta en la carpeta "Nivel3" en otro que esta en la carpeta "Nivel2".

Lo de que estan en la misma carpeta me refiero a los dos archivos en donde pruebo a hacer los includes, en un archivo de la carpeta "Nivel2" hago el include_once como comente y me incluye el archivo de la carpeta "Nivel3" perfectamente, pero hago exactamente lo mismo en otro archivo de la carpeta "Nivel2" para incluir el archivo de la carpeta "Nivel3" y ala, error al canto.

Ejemplo:

Código de usuario.inc.php:

<?php

include_once 'Nivel3/seleccion.inc.php';
...........
?>


Me lo hace bien.

Código de deporte.inc.php:

<?php

include_once 'Nivel3/seleccion.inc.php';
...........
?>


Me da el error que comente.

Y "usuario.inc.php" y "deporte.inc.php" estan en la misma carpeta. Sigo sin saber porque me da el error, tecnicamente tendria que incluirlo tanto en uno como en otro correctamente, si lo hago igual no??

Es mas, estoy usando el Zend Studio for Eclipse para hacer el proyecto, y al escribir include_once ya me va listando las carpetas y archivos que hay, y lo escribo tal y como digo y no me da error el Zend Studio de que el archivo no exista o algo parecido, porque a veces puse la ruta mal y el propio programa me daba un aviso de que ese archivo no existia, y en esta ocasion nada de nada.

Muchas gracias por la ayuda.

No os preocupeis, ya esta solucionado el problema. Tambien es casualidad que despues de estar buscando por el foro durante 2 dias, y justo cuando me registre para dejar el mensaje, descubra la solucion, pero bueno, supongo que estas cosas pasan jaja

Al final lo solucione definiendo una variable "RUTA" con define y dandole el valor $_SERVER["DOCUMENT_ROOT"], y haciendo los includes asi:

include_once RUTA.'Nivel3/seleccion.inc.php';

Muchas gracias a todos de todas formas :)

Última edición por GatorV; 06/06/2009 a las 12:30
  #4 (permalink)  
Antiguo 06/06/2009, 12:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con include_once, urgente!! :_(

Solo para que entiendas el porque del error, PHP resuelve los includes/requires desde el punto de ejecución del archivo que se esta ejecutando, por lo que si incluyes otro archivo que esta en otra carpeta y este tiene un include relativo, por eso te da el error porque PHP lo va a buscar desde el punto del archivo en ejecución.

La mejor solución es lo que hiciste, definir una ruta absoluta y hacer tus includes desde esa ruta.

Para comprobar lo que te digo imprime en varios de tus php: echo getcwd(); eso te va a servir para ver como se mueven las rutas y el porque del error.

Saludos.
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:24.