Curso de PHP

Estás en: Variables externas y Formularios : Variables de servidor

Variables de servidor

Las variables de servidor se definen con $_SERVER.
Vienen determinadas en el servidor y nos dan información de él. No las podemos crear ni gestionar.
Nos devuelven el nombre del servidor, la ip, ...

$_SERVER["PHP_SELF"]
Devuelve el nombre del script que se está ejecutando. Es decir, la página actual.
'PHP_SELF' -> El nombre de archivo del script ejecutándose actualmente, relativo a la raíz de documentos.
Ej: $_SERVER['PHP_SELF'] en un script en la dirección http://www.dominio.com/directorio/test.php sería /test.php

Si PHP está siendo ejecutado como un procesador de línea de comandos, esta variable no está disponible.

'argv'
Matriz de argumentos pasados al script. Cuando el script es ejecutado en la línea de comandes, ésta entrega acesso al estilo C a los parámetros de la línea de comandos.
Cuando es llamado mediante el método GET, ésta contendrá la cadena de consulta (query).

'argc'
Contiene el número de parámetros de línea de comandos pasados al script (si se ejecuta en la línea de comandos).

'GATEWAY_INTERFACE'
Qué revisión de la especificación CGI está usando el servidor; i.e. 'CGI/1.1'.

'SERVER_NAME'
El nombre del servidor anfitrión bajo el que está siendo ejecutado el script actual. Si el script está corriendo en un host virtual, éste será el valor definido para tal host virtual.

'SERVER_SOFTWARE'
Cadena de identificación del servidor, dada en las cabeceras cuando se responde a peticiones.

'SERVER_PROTOCOL'
Nombre y revisión del protocolo de información mediante el cual fue solicitada la página; es decir, 'HTTP/1.0';

'REQUEST_METHOD'
Cuál método de petición fue usado para acceder a la página; es decir, 'GET', 'HEAD', 'POST', 'PUT'.

'QUERY_STRING'
La cadena de consulta, si existe, mediante la cual se accedió a la página.

'DOCUMENT_ROOT'
El directorio raíz de documentos bajo el que está siendo ejecutado el script actual, tal y como se define en el archivo de configuración del servidor.

'HTTP_ACCEPT'
Contenidos de la cabecera Accept: de la petición actual, si existe.

'HTTP_ACCEPT_CHARSET'
Contenidos de la cabecera Accept-Charset: de la petición actual, si existe. Ejemplo: 'iso-8859-1,*,utf-8'.

'HTTP_ACCEPT_ENCODING'
Contenidos de la cabecera Accept-Encoding: de la petición actual, si existe. Ejemplo: 'gzip'.

'HTTP_ACCEPT_LANGUAGE'
Contenidos de la cabecera Accept-Language: de la petición actual, si existe. Ejemplo: 'en'.

'HTTP_CONNECTION'
Contenidos de la cabecera Connection: de la petición actual, si existe. Ejemplo: 'Keep-Alive'.

'HTTP_HOST'
Contenidos de la cabecera Host: de la petición actual, si existe.

'HTTP_REFERER'
La dirección de la página (si la hay) la cual refirió al agente de usuario a la página actual. Este valor es definido por el agente de usuario. No todos los agentes de usuario lo definen, y algunos proveen la capacidad de modificar HTTP_REFERER como una característica del software. En resumen, no se puede confiar realmente en este valor.

'HTTP_USER_AGENT'
Contenidos de la cabecera User-Agent: de la petición actual, si existe. Esta es una cadena que denota el agente de usuario que está accediendo a la página. Un ejemplo típico es: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Entre otras cosas, puede usar este valor con get_browser() para personalizar la salida de su página a las capacidades del agente de usuario.

'REMOTE_ADDR'
La dirección IP desde donde el usuario está observado la página actual.

'REMOTE_HOST'
El nombre Host desde donde el usuario está viendo la página actual. La consulta dns de vuelta está basada en el valor REMOTE_ADDR del usuario.
Nota: Su servidor web debe estar configurado para crear esta variable.
Por ejemplo, en Apache necesitará HostnameLookups On dentro de httpd.conf para que exista. Vea también gethostbyaddr().

'REMOTE_PORT'
Es puerto que está siendo usado en la máquina del usuario para comunicarse con el servidor web.

'SCRIPT_FILENAME'
La ruta absoluta del nombre del script siendo ejecutado actualmente.
Nota: Si un script es ejecutado en el entorno CLI usando una ruta relativa, tal como archivo.php o ../archivo.php, $_SERVER['SCRIPT_FILENAME'] contendrá la ruta relativa especificada por el usuario.

'SERVER_ADMIN'
El valor dado a la directiva SERVER_ADMIN (para Apache) en el archivo de configuración del servidor web. Si el script está siendo ejecutado en un host virtual, éste será el valor definido para ese host virtual.

'SERVER_PORT'
El puerto en el equipo servidor que está siendo usado por el servidor web para comunicación. En configuraciones predeterminadas, ese valor será '80'; usando SSL, por ejemplo, este valor cambiará a cualquiera que sea el puerto que esté definido para HTTP seguro.

'SERVER_SIGNATURE'
Cadena que contiene la versión del servidor y el nombre de host virtual que es agregado a las páginas generadas por el servidor, si está habilitada esta funcionalidad.

'PATH_TRANSLATED'
Ruta sobre el sistema de archivos (no la raíz de documentos) al script actual, luego de que el servidor haya realizado cualquier asignación al vuelo virtual-a-real.

'SCRIPT_NAME'
Contiene la ruta del script actual. Ésta es útil para páginas que necesitan apuntar a ellas mismas.

'REQUEST_URI'
El URI que fue dado para acceder a esta página; por ejemplo, '/index.html'.

'PHP_AUTH_USER'
Cuando se corre sobre Apache como módulo realizando autenticación HTTP, ésta variable es definida con el nombre de usuario definido por el cliente.

'PHP_AUTH_PW'
Cuando se corre sobre Apache como módulo realizando autenticación HTTP, ésta variable es definida con la contraseña entregada por el usuario.

'AUTH_TYPE'
Cuando se corre sobre Apache como módulo realizando autenticación HTTP, ésta variable es definida con el tipo de autenticación.

Ejemplo

Mostrar todas las variables que tiene el servidor.

foreach ($_SERVER as $referencia=>$valor) {
	echo $referencia . "=> ". $valor. "<br />";
}
RESULTADO POR PANTALLA
HTTP_HOST=> localhost
HTTP_USER_AGENT=> Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
HTTP_ACCEPT=> text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
HTTP_ACCEPT_LANGUAGE=> es-es,es;q=0.8,en-us;q=0.5,en;q=0.3
HTTP_ACCEPT_ENCODING=> gzip,deflate
HTTP_ACCEPT_CHARSET=> ISO-8859-1,utf-8;q=0.7,*;q=0.7
HTTP_KEEP_ALIVE=> 300
HTTP_CONNECTION=> keep-alive
HTTP_REFERER=> http://localhost/web/Curso_PHP_Monica/_EJERCICIOS/02_Variable_Externas_forms/18%20Variables%20de%20servidor/
HTTP_COOKIE=> PHPSESSID=41288b43fa5e6e1b859d59fba715c69f
PATH=> C:\Program Files\PC Connectivity Solution\;C:\WINDOWS\SYSTEM32;C:\WINDOWS;C:\WINDOWS\SYSTEM32\WBEM;C:\Program Files\Panda Software\Panda Antivirus + Firewall 2007\;C:\Program Files\Common Files\Adobe\AGL;C:\Program Files\QuickTime\QTSystem\
SystemRoot=> C:\WINDOWS
COMSPEC=> C:\WINDOWS\system32\cmd.exe
PATHEXT=> .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
WINDIR=> C:\WINDOWS
SERVER_SIGNATURE=>
Apache/2.2.0 (Win32) DAV/2 mod_ssl/2.2.0 OpenSSL/0.9.8a mod_autoindex_color PHP/5.1.2 Server at localhost Port 80

SERVER_SOFTWARE=> Apache/2.2.0 (Win32) DAV/2 mod_ssl/2.2.0 OpenSSL/0.9.8a mod_autoindex_color PHP/5.1.2
SERVER_NAME=> localhost
SERVER_ADDR=> 127.0.0.1
SERVER_PORT=> 80
REMOTE_ADDR=> 127.0.0.1
DOCUMENT_ROOT=> C:/Program Files/xampp/htdocs
SERVER_ADMIN=> admin@localhost
SCRIPT_FILENAME=> C:/Program Files/xampp/htdocs/web/Curso_PHP_Monica/_EJERCICIOS/02_Variable_Externas_forms/18 Variables de servidor/variables_servidor.php
REMOTE_PORT=> 1447
GATEWAY_INTERFACE=> CGI/1.1
SERVER_PROTOCOL=> HTTP/1.1
REQUEST_METHOD=> GET
QUERY_STRING=>
REQUEST_URI=> /web/Curso_PHP_Monica/_EJERCICIOS/02_Variable_Externas_forms/18%20Variables%20de%20servidor/variables_servidor.php
SCRIPT_NAME=> /web/Curso_PHP_Monica/_EJERCICIOS/02_Variable_Externas_forms/18 Variables de servidor/variables_servidor.php
PHP_SELF=> /web/Curso_PHP_Monica/_EJERCICIOS/02_Variable_Externas_forms/18 Variables de servidor/variables_servidor.php
REQUEST_TIME=> 1177624666
argv=> Array
argc=> 0