Document_root

No se si hay variaciones en PHP 5 con respecto a las variables predefinidas, pero creo que no.
Haz lo siguiente: crea un fichero en la carpeta raíz de los documentos que se llame phpinfo.php. Y dentro escribe..
<?php
phpinfo();
?>
Ahora guardalo y ejecutalo desde el navegador http://localhost/phpinfo.php
Te saldrán una serie de tablas con información del PHP que tienes instalado. Busca el apartado PHP Variables y dime si aparece _SERVER['DOCUMENT_ROOT']
Por cierto, olvida lo de $HTTP_SERVER... Es una sintaxis en desuso.
Ya me contarás. Hasta ahora.

1 Respuesta

Respuesta
1
Las variables globales $_SERVER, como su nombre indica, dependen del servidor web y es este el que marca cuales están disponibles y cuales no.
Opciones: cambia de servidor web, por ejemplo, apache para windows (aunque eso tiene ciertas implicaciones de seguridad).
En segundo lugar podemos encontrar otro modo de hacer lo que quieres sin tener que llamar a esa varaible. De hecho, yo nunca la he necesitado.
Si me comentas para que necesitas esa variable, podemos buscar alguna alternativa.
Venga.
Pasa que tengo un sistema que me han pasado y en varias partes del mismo, al momento de realizar unos "include" utiliza la variable en cuestión.
Ahora me pondré a probar de quitar tal variable y ver si corre bien de tal manera.
Hace un par de semanas que empecé a estudiar y a realizar unos scripts en PHP pero me encontré con mi primer piedra en el camino.
No puedo usar la una de las variables predefinidas del servidor:
Por ejemplo, con PHP_SELF no tengo inconvenientes, pruebo este ejemplo y todo funciona bien en ambos casos:
print $_SERVER['PHP_SELF'];
print $HTTP_SERVER_VARS['PHP_SELF'];
Ahora, con DOCUMENT_ROOT, la historia es diferente y en todos los casos recibo: Undefined index: DOCUMENT_ROOT.
print $_SERVER['DOCUMENT_ROOT'];
print $HTTP_SERVER_VARS['DOCUMENT_ROOT'];
¿Cómo puedo salvar este problema?
Para ampliar los datos, comento que tengo instalado PHP 5 en IIS 5 sobre Windows XP.
Bien, ya he probado el PHPInfo, pero no aparece el DOCUMENT_ROOT entres las PHP variables.
Te muestro las variables que me devuelve el phpinfo():
_SERVER["ALLUSERSPROFILE"]
_SERVER["CommonProgramFiles"]
_SERVER["COMPUTERNAME"]
_SERVER["ComSpec"]
_SERVER["CONTENT_LENGTH"]
_SERVER["GATEWAY_INTERFACE"]
_SERVER["HTTP_ACCEPT"]
_SERVER["HTTP_ACCEPT_LANGUAGE"]
_SERVER["HTTP_CONNECTION"]
_SERVER["HTTP_HOST"]
_SERVER["HTTP_USER_AGENT"]
_SERVER["HTTP_ACCEPT_ENCODING"]
_SERVER["HTTPS"]
_SERVER["INSTANCE_ID"]
_SERVER["LOCAL_ADDR"]
_SERVER["NUMBER_OF_PROCESSORS"]
_SERVER["OS"]
_SERVER["Path"]
_SERVER["PATHEXT"]
_SERVER["PROCESSOR_ARCHITECTURE"]
_SERVER["PROCESSOR_IDENTIFIER"]
_SERVER["PROCESSOR_LEVEL"]
_SERVER["PROCESSOR_REVISION"]
_SERVER["ProgramFiles"]
_SERVER["REMOTE_ADDR"]
_SERVER["REMOTE_HOST"]
_SERVER["REQUEST_METHOD"]
_SERVER["SCRIPT_NAME"]
_SERVER["SERVER_NAME"]
_SERVER["SERVER_PORT"]
_SERVER["SERVER_PORT_SECURE"]
_SERVER["SERVER_PROTOCOL"]
_SERVER["SERVER_SOFTWARE"]
_SERVER["SystemDrive"]
_SERVER["SystemRoot"]
_SERVER["TEMP"]
_SERVER["TMP"]
_SERVER["USERPROFILE"]
_SERVER["windir"]
_SERVER["ORIG_PATH_TRANSLATED"]
_SERVER["ORIG_PATH_INFO"]
_SERVER["ORIG_SCRIPT_NAME"]
_SERVER["SCRIPT_FILENAME"]
_SERVER["PHP_SELF"]
_SERVER["argv"]
_SERVER["argc"]
_ENV["ALLUSERSPROFILE"]
_ENV["CommonProgramFiles"]
_ENV["COMPUTERNAME"]
_ENV["ComSpec"]
_ENV["CONTENT_LENGTH"]
_ENV["GATEWAY_INTERFACE"]
_ENV["HTTP_ACCEPT"]
_ENV["HTTP_ACCEPT_LANGUAGE"]
_ENV["HTTP_CONNECTION"]
_ENV["HTTP_HOST"]
_ENV["HTTP_USER_AGENT"]
_ENV["HTTP_ACCEPT_ENCODING"]
_ENV["HTTPS"]
_ENV["INSTANCE_ID"]
_ENV["LOCAL_ADDR"]
_ENV["NUMBER_OF_PROCESSORS"]
_ENV["OS"]
_ENV["Path"]
_ENV["PATHEXT"]
_ENV["PROCESSOR_ARCHITECTURE"]
_ENV["PROCESSOR_IDENTIFIER"]
_ENV["PROCESSOR_LEVEL"]
_ENV["PROCESSOR_REVISION"]
_ENV["ProgramFiles"]
_ENV["REMOTE_ADDR"]
_ENV["REMOTE_HOST"]
_ENV["REQUEST_METHOD"]
_ENV["SCRIPT_NAME"]
_ENV["SERVER_NAME"]
_ENV["SERVER_PORT"]
_ENV["SERVER_PORT_SECURE"]
_ENV["SERVER_PROTOCOL"]
_ENV["SERVER_SOFTWARE"]
_ENV["SystemDrive"]
_ENV["SystemRoot"]
_ENV["TEMP"]
_ENV["TMP"]
_ENV["USERPROFILE"]
_ENV["windir"]
_ENV["ORIG_PATH_TRANSLATED"]
_ENV["ORIG_PATH_INFO"]
_ENV["ORIG_SCRIPT_NAME"]
_ENV["SCRIPT_FILENAME"]
¿Existirá alguna forma de configurar para que la misma esté disponible?
¿Existirá alguna otra que me sirva de reemplazo?
Vale. Cuéntame como te ha ido. También puedes probar a poner las rutas exactas a los ficheros tal y como haya quedado la instalación del sistema.
Para localizar un archivo del directorio raíz desde un subdirectorio utiliza...
include "../fichero";
Para utilizar un fichero de un subdirectorio desde la carpeta raiz usa...
include "subdirectorio/fichero";
Para utilizar un fichero del subdirectorio2 estando en el subdirectorio1 usa...
include "../subdirectorio2/fichero";
Es fácil. Ya verás como lo pillas rápido.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas