Foros del Web » Programando para Internet » PHP »

problemas con funciones incluidas en un php

Estas en el tema de problemas con funciones incluidas en un php en el foro de PHP en Foros del Web. Buenas, espero explicarme bien a ver si me podéis ayudar, puesto que tengo un gran problema y no sé como resolverlo Tengo una gestión de ...
  #1 (permalink)  
Antiguo 01/02/2009, 14:59
 
Fecha de Ingreso: febrero-2009
Mensajes: 28
Antigüedad: 15 años, 2 meses
Puntos: 0
problemas con funciones incluidas en un php

Buenas, espero explicarme bien a ver si me podéis ayudar, puesto que tengo un gran problema y no sé como resolverlo

Tengo una gestión de una web y como siempre quiero ser ordenado, pero tengo un gran problema puesto que intento hacer referencia a un archivo que está en el raiz desde una subcarpeta de otra subcarpeta y me da errores.

En el raíz tengo config.php

después en la carpeta funciones tengo funciones.php y dentro de esta otros archivos que hacen referencia a ese, pero me da un error de acceso a config con los includes.

¿sé puede solucionar de alguna manera o me toca quitar esta organización?

saludos.
  #2 (permalink)  
Antiguo 01/02/2009, 15:27
 
Fecha de Ingreso: julio-2008
Ubicación: México
Mensajes: 150
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: problemas con funciones incluidas en un php

Seria bueno que mostrarás el codigo donde haces el include y nos dijeras que mensaje de error te manda el servidor.
  #3 (permalink)  
Antiguo 01/02/2009, 15:46
 
Fecha de Ingreso: febrero-2009
Mensajes: 28
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: problemas con funciones incluidas en un php

Estas es la estructura de carpetas que tengo

raiz: config.php (conexion a base de datos)

cdp_admin ==> funciones(carpetas) ==> conexion a base de datos (include a config.php)

cdp_admin ==> codigo(carpeta) ==> en cualquier archivo hago un include a funciones que a su vez tendría que hacer una llamada a config.php

Este es el mensaje de error



Warning: require(../config.php): failed to open strem. No such file or directory in C:\AppServ\www\top\cdp_admin\funciones\funciones.p hp on line 2

Fatal error: require() :failed opening required '../config.php'(include_path:'.;C:\php5\pear') in C:\AppServ\www\top\cdp_admin\funciones\funciones.p hp on line 2

y este es el código que le mando

require("../funciones/funciones.php");
$link = Conectarse();


Muchas gracias por la atención,.
  #4 (permalink)  
Antiguo 01/02/2009, 15:54
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: problemas con funciones incluidas en un php

Solo tienes que jugar un poco con las rutas:

Para acceder a config.php desde /cdp_admin/funciones/, tienes que ir 2 directorios atras.

include('../../config.php');

Y para acceder a funciones, desde /cdp_admin/codigo/ tienes que ir, 1 directorio atras.

include('../funciones/conexion.php');
  #5 (permalink)  
Antiguo 01/02/2009, 16:13
 
Fecha de Ingreso: febrero-2009
Mensajes: 28
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: problemas con funciones incluidas en un php

pero no habrá problemas si en funciones tengo un include con config.php???
  #6 (permalink)  
Antiguo 01/02/2009, 17:12
 
Fecha de Ingreso: septiembre-2008
Mensajes: 350
Antigüedad: 15 años, 7 meses
Puntos: 31
Respuesta: problemas con funciones incluidas en un php

y porque no usas $_SERVER['DOCUMENT_ROOT']

con eso puedes llamar un include desde cualquier folder
suponiendo que este C:/AppServ/www es la raíz de tu sitio
entonces solo haces esto
include($_SERVER['DOCUMENT_ROOT']."/config.php");

si un file php esta en una ruta así
C:/AppServ/www/1/2/3/5/aaa.php

y tienes un fichero en otra ruta así
C:/AppServ/www/b1/b2/b3/5/bbb.php

y quieres incluir aaa.php a bbb.php
entonces seria así

include($_SERVER['DOCUMENT_ROOT']."/1/2/3/5/aaa.php");

y si aaa.php esta en C:/AppServ/www/b1/b2/aaa.php
y bbb.php esta en:
C:/AppServ/www/b1/b2/b3/5/bbb.php

entonces seria así
include($_SERVER['DOCUMENT_ROOT']."/b1/b2/aaa.php");
__________________
╬-----╬
║☺₧☻║
╬-----╬
  #7 (permalink)  
Antiguo 01/02/2009, 20:22
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problemas con funciones incluidas en un php

Ten en cuenta que si usas rutas relativas en los includes, y para poner includes dentro de otros archivos que serán incluídos, etc. todas serán relativas al path del script primario, al que se hizo el request y que incluye a las demás. Por lo tanto, te sugiero trabajar con una constante BASE que te lleve a la raíz de tu sitio. Todos los includes entonces los haces relativos a la raíz simplemente añadiendo el BASE al path del archivo a incluir.

Por ejemplo, si tienes un archivo /codigo/otrasubcarpeta/archivo.php, tu constante deberá descender 2 niveles para llegar a la raíz:

Código PHP:
define('BASE''../../'); 
Luego, para incluir un archivo /includes/funciones.php, colocas:
Código PHP:
include BASE 'includes/funciones.php'
Si en funciones.php quieres incluir un config.php que se encuentra en el mismo directorio (/includes/) y global.php que se encuentra en el directorio raíz, pues pones:

Código PHP:
include BASE 'includes/config.php';
include 
BASE 'global.php'
Obviamente el valor de BASE dependerá del nivel en el que se encuentra tu archivo primario archivo.php. Otro punto es que esa constante sólo debe ser definida en los archivos primarios, osea aquellos que serán llamados directamente en el navegador.

  #8 (permalink)  
Antiguo 01/02/2009, 21:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problemas con funciones incluidas en un php

lo que yo hago, es lo que dice okram

desde el index... defino la carpeta base con dirname()

y esta la uso siempre, pues... es la ruta base!

index.php
Código PHP:
define('BASE_DIR'dirname(__FILE__));

include 
BASE_DIR '/foo/bar.php'
bar.php
Código PHP:
include BASE_DIR '/includes/candy.inc.class.php'
bueno, para que funcione todo lo debes hacer desde el index, como hacen los frameworks...

de este modo, nunca hay problemas con las rutas...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 03/02/2009, 02:18
 
Fecha de Ingreso: febrero-2009
Mensajes: 28
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: problemas con funciones incluidas en un php

Muchas gracias!!

En estos momentos lo estoy probando, después os digo el resultado

Gracias a todos por contestar.
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 23:07.