Ayuda con Include()

Iniciado por Eru Iluvatar, 22 Octubre 2009, 22:25 PM

0 Miembros y 1 Visitante están viendo este tema.

Eru Iluvatar

Buenas y santas...

A ver explico bien bien detallado lo que me pasa...
Tengo un sitio en PHP, y voy a hacer un Include() de una librería que tiene 3 funciones, entonces en el sitio donde quiero poner una función, solo pongo:
include("menu_top.php");
MenuServicios();


Eso lo hago para que me quede fácil editar los items del menú....bueno, resulta que quiero hacer un include() que me invoque el archivo desde la raíz y que no piense que trato de invocar el fichero desde donde está la pagina que lo invoca... (necesito que busque la raiz, no que siga desde la carpeta donde lo invoco), me explico con un ejemplo:

include("menu_top.php"); -> El archivo está en la raiz: /home/public_html/menu_top.php

Entonces pongo:
include("../../home/public_html/menu_top.php") -> Pongo la ruta más los /../ para que piense que trato de hacerlo desde la raiz.

Sin embargo me saca error de que no lo encuentra... o sea, no me lo busca en la raiz, sino que me lo está buscando donde está el archivo donde lo invoco, otro ejemplo:

home/public_html/carpeta/carpeta/pagina.php -> esa pagina invoca a menu_top.php,

home/public_html/carpeta/carpeta/pagina.php -> cree que cuando pongo: include("../../home/public_html/menu_top.php") ó include("menu_top.php") tiene que buscarlo ahí mismo en carpeta/carpeta/ y no en la raiz:


home/public_html/carpeta/carpeta/menu_top.php -> No found xDD bah, pues obvio!, no esta ahi sino en la raiz...

igual con:

home/public_html/carpeta/carpeta/home/public_html/menu_top.php -> duh, ahi tampoco esta....


Si me hago entender?.... como hago para que me busque directamente donde le digo!... asi sea de otra forma, con require, no se.... muchas gracias...

GiVeN

No entiendo cual es la idea de llegar a la raiz nuevamente..
pero si quieres retroceder una carpeta pones "../" sin comillas

mokoMonster

Mira.. yo tengo un sitio igual en PHP y mi server es 000webhost, y creo que es igual el tuyo, total, digamos que en ejemplo1.php es en donde incluiras ejemplo2.php..

Los dos ficheros guardalos en la misma carpeta de tu host, que seria en public_html (en caso de que ahi la quieras).
Solo invoca a ejemplo2.php con
include("ejemplo2.php");


Ahora suponamos que en tu host tienes estas carpetas
:home/public_html/
:home/public_html/images/


Ahora, supongamos que ejemplo1.php que esta en "home/public_html/" y que quieres llamar a IMAGE.jpg que esta en "home/public_html/images/"
Entonces el codigo para llamar a IMAGE.jpg desde ejemplo1.php
seria: include("images/IMAGE.jpg");seria lo mismo si lo escribes asi tambien:
include("../images/IMAGE.jpg");

Espero te haya servido de algo
Cuidate
xD
"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual."
Lagrange

Filibustero de bolsillo

Hola,

Veo que tu problema es que tratas de invocar un archivo que está en /public_html/subcarpeta/subcarpeta y está tratando de invocar a uno de la raiz, verdad?... siendo ese el caso, sería retroceder con /../../ el número de veces que sea necesario no?... de pronto si son más carpetas, apenas retrocedes dos, y no las demás...

Absence makes the heart grow fonder.

Eru Iluvatar

Gracias!, al final mejor re estructuré el site y dejé todo más ordenado xD.. deje que los archivos que invocan estén en la raiz o en una subcarpeta, mas no en las 6 o 7 en las que estaba xD... solved.

дٳŦ٭

ammm mejor usa rutas absolutas.. checate el $_SERVER['DOCUMENT_ROOT']. Suerte  ;)


Con sangre andaluza :)