Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: wizache en 29 Junio 2007, 01:20 am



Título: Direccion raiz php
Publicado por: wizache en 29 Junio 2007, 01:20 am
HOla que tal estoy con una pagina en php a la que quiero hacer varios include, el problema es que si la carpeta no esta en el directorio base el include por supuesto no funciona, la solucion aunque no la perfecta seria hacer un include y cambiarle la direccion, peor el problema es que este include llama asi mismo otro include que no podria cambiar, para esto intennte varias cosas:

1. poner la direccion de estra manera: include("/carpeta/pagina.php"); pensando en que tomara la / como el directorio raiz como en html, lo cual no funciono

2. con la funcion include($_SERVER['DOCUMENT_ROOT']."/carpeta/pagina.php"); esto funciono a la perfeccion en mi servidor local, pero a la hora de subirlo al dichoso servidor, nada funciona, al parecer $_SERVER['DOCUMENT_ROOT'] hace refernecia a la carpeta del servidor "en el servidor", es decir /var/www/misitio en mi caso, pero a la hora de subiro al servidor web la direccion a la que hace referencia no coincide con la de mi dominio dado por alguna razon

Habra alguna funcion en php que em devuelve la carpeta raiz del servidor actual, es decir no:
"/var/www/misitio" sino que se refiera a por ejemplo "midominio/"

Saludos  :P


Título: Re: Direccion raiz php
Publicado por: eLank0 en 29 Junio 2007, 22:40 pm
Puedes hacer:

Código:
include("dirección web del archivo");

Y para subir directorio:

Código:
include("../archivo");

Con el ../ .

S2


Título: Re: Direccion raiz php
Publicado por: carlosre en 2 Septiembre 2011, 16:27 pm
si quieres puedes usar $_SERVER['DOCUMENT_ROOT'], esto te devolvera la variable del directorio raiz que buscas.


Título: Re: Direccion raiz php
Publicado por: WHK en 3 Septiembre 2011, 05:42 am
Código
  1. include(dirname(__file__).'/dir/include.php');

__file__ te da la ruta total del archivo php actual, por ejemplo:
/var/www/test/test.php

entonces dirname te lo transforma a directorio:
/var/www/test

asi que queda así:
/var/www/test/dir/include.php

pero te recomiendo verificar antes:
Código
  1. if(file_exists($inc = dirname(__file__).'/dir/include.php'))
  2. inlclude($inc); // evita el @ para un error_reporting mas flexible
  3. else
  4. echo 'Falta la inclusión';