Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Eru Iluvatar en 22 Octubre 2009, 22:25 pm



Título: Ayuda con Include()
Publicado por: Eru Iluvatar en 22 Octubre 2009, 22:25 pm
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:
Código:
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...


Título: Re: Ayuda con Include()
Publicado por: GiVeN en 23 Octubre 2009, 00:47 am
No entiendo cual es la idea de llegar a la raiz nuevamente..
pero si quieres retroceder una carpeta pones "../" sin comillas


Título: Re: Ayuda con Include()
Publicado por: mokoMonster en 24 Octubre 2009, 00:47 am
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
Código:
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


Título: Re: Ayuda con Include()
Publicado por: Embusterillo de bolsillo en 24 Octubre 2009, 01:48 am
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...


Título: Re: Ayuda con Include()
Publicado por: Eru Iluvatar en 24 Octubre 2009, 04:49 am
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.


Título: Re: Ayuda con Include()
Publicado por: дٳŦ٭ en 26 Octubre 2009, 21:27 pm
ammm mejor usa rutas absolutas.. checate el $_SERVER['DOCUMENT_ROOT']. Suerte  ;)