Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] error con include_once()

Estas en el tema de error con include_once() en el foro de PHP en Foros del Web. Hola a todos, antes que nada gracias por la ayuda que me puedan brindar. Tengo la siguiente estructura de archivos \ . ---A . ----A.class.php ...
  #1 (permalink)  
Antiguo 26/06/2013, 12:30
 
Fecha de Ingreso: enero-2011
Ubicación: Montevideo
Mensajes: 31
Antigüedad: 13 años, 9 meses
Puntos: 1
error con include_once()

Hola a todos, antes que nada gracias por la ayuda que me puedan brindar.

Tengo la siguiente estructura de archivos
\
. ---A
. ----A.class.php
. ---B
. ----B.class.php
. ---BD
. ----Conexion.class.php
. ejemplo.php

A.class.php tiene la siguiente línea include_once("../BD/Conexion.class.php");
y desde ejemplo.php llamo a include_once("A/A.class.php");
El tema es que al llamar a ejemplo.php me da el siguiente error
Warning: include_once(../BD/Conexion.class.php) [function.include-once]: failed to open stream: No such file or directory in

Si yo le saco el ../ y lo dejo include_once("BD/Conexion.class.php"); me funciona, el tema es que yo llamo a A.class.php desde otros lugares y está funcionando bien, por lo que este error me representa un problema y un dolor de cabeza para que me funcione desde ejemplo.php.

Alguna idea de donde está mi error?

Desde ya muchas gracias por vuestra ayuda
  #2 (permalink)  
Antiguo 26/06/2013, 12:39
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: error con include_once()

Php buscará el archivo a incluir iniciando en la carpeta del script que se está ejecutando, en este caso, ejemplo.php.

Te recomiendo usar una constante para establecer la ruta de tu carpeta raíz y puedas incluir cualquier archivo sin importar la estructura de tu proyecto.

Ejemplo:
Código PHP:
Ver original
  1. // en ejemplo.php
  2. define('RAIZ', 'c:/www');
  3.  
  4. // En cada include:
  5. include RAIZ . '/A/A.class.php';
  6.  
  7. // Si estás en A.class.php, esto funcionará:
  8. include RAIZ . '/BD/Conexion.class.php';
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 26/06/2013, 14:47
Avatar de alvidales  
Fecha de Ingreso: febrero-2012
Mensajes: 108
Antigüedad: 12 años, 9 meses
Puntos: 11
Respuesta: error con include_once()

yo recomiendo utilizar la variable predefinida __DIR__ que hace referencia a la ruta donde se esta mandando llamar:

A.class.php tiene la siguiente línea include_once __DIR__ . "/../BD/Conexion.class.php";
y desde ejemplo.php llamo a include_once __DIR__ . "/A/A.class.php";

esto para que no necesites definir la variable RAIZ y se maneje de la manera mas organica posible.
__________________
Hasta que el hombre no es nada, Dios no puede hacer nada con el.

Etiquetas: Ninguno
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 14:45.