A partir de PHP 4.1.0, el método preferido para
recuperar variables
externas es mediante las superglobales mencionadas
más adelante. Antes de este punto, la gente recaía
en register_globals o
las matrices largas predefinidas en PHP
($HTTP_*_VARS). A partir de PHP 5.0.0, las
matrices de tipo "long" de variables
predefinidas, se pueden desactivar con la directiva register_long_arrays.
Nota:
Aparecieron en 4.1.0. En versiones anteriores, utilice
$HTTP_SERVER_VARS.
$_SERVER es una matriz que contiene
información tal como cabeceras, rutas y ubicaciones de
scripts. Las entradas de esta matriz son creadas por el servidor
web. No existen garantías de que cada servidor vaya a
proveer alguno de estos valores; puede que los servidores omitan
algunos, o provean otros que no se listan aquí. Hecha esta
aclaración, un gran número de estas variables hacen
parte de la especificación CGI
1.1, así que puede esperar que sean definidas por
el servidor.
Esta es una variable 'superglobal', o global
automática. Esto simplemente quiere decir que está
disponible en todos los contextos a lo largo de un script. No
necesita hacer global $_SERVER; para acceder a
ella dentro de funciones o métodos, como lo hace
con $HTTP_SERVER_VARS.
$HTTP_SERVER_VARS contiene la misma
información inicial, pero no es autoglobal. (Note
que $HTTP_SERVER_VARS
y $_SERVER son variables diferentes y que PHP
las trata como tal)
Si la directiva register_globals
está definida, entonces estas variables también
estarán disponibles en el contexto global del script; esto
quiere decir, por separado de las
matrices $_SERVER
y $HTTP_SERVER_VARS. Para información
relacionada, vea el capítulo de seguridad titulado Uso de Registros
Globales. Estas variables globales individuales no son
autoglobales.
Usted puede encontrar o no cualquiera de los siguientes elementos
en $_SERVER. Note que algunos de éstos, si es que los hay,
estarán disponibles (o tendrán algún
significado después de todo) si se ejecuta PHP en la
línea de comandos.
- 'PHP_SELF'
El nombre de archivo del script ejecutándose
actualmente, relativo a la raíz de documentos. Por
ejemplo, $_SERVER['PHP_SELF'] en un script
en la
dirección http://example.com/test.php/foo.bar
sería /test.php/foo.bar.
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.
Nota:
Introducidas en 4.1.0. En versiones anteriores,
use $HTTP_ENV_VARS.
Estas variables son importadas en el espacio de nombres global de
PHP desde el entorno bajo el que está siendo ejecutado el
intérprete PHP. Muchas son entregadas por el
intérprete de comandos bajo el que PHP está
corriendo y diferentes sistemas suelen tener diferentes tipos de
intérpretes de comandos, una lista definitiva es
imposible. Por favor consulte la documentación de su
intérprete de comandos por una lista de varibles de
entorno que resultan definidas.
Otras variables de entorno incluyen las variables CGI, colocadas
allí independientemente de que PHP esté siendo
ejecutado como módulo del servidor o procesador CGI.
Esta es una variable 'superglobal', o global
automática. Esto simplemente quiere decir que está
disponible en todos los contextos a lo largo del script. No
necesita hacer global $_ENV; para acceder a
ella desde funciones o métodos, tal y como lo hace
con $HTTP_ENV_VARS.
$HTTP_ENV_VARS contiene la misma
información inicial, pero no es autoglobal. (Note que
$HTTP_ENV_VARS y $_ENV son
variables diferentes y que PHP las trata como tal)
Si la directiva register_globals
está definida, entonces estas variables también se
harán disponibles en el entorno global del script; i.e.,
por separado de las matrices $_ENV
y $HTTP_ENV_VARS. Para información
relacionada, consulte el capítulo de seguridad
titulado Uso de
Registros Globales. Estas globales individuales no son
autoglobales.
Nota:
Introducidas en 4.1.0. En versiones anteriores, use
$HTTP_COOKIE_VARS.
Una matriz asociativa de variables pasadas al script actual a
través de cookies HTTP. Global automáticamente en
cualquier contexto.
Esta es una variable 'superglobal', o global
automática. Esto simplemente quiere decir que está
disponible en todos los contextos a lo largo de un script. No
necesita hacer global $_COOKIE; para acceder a
ella dentro de funciones o métodos, como lo hace
con $HTTP_COOKIE_VARS.
$HTTP_COOKIE_VARS contiene la misma
información inicial, pero no es autoglobal. (Note que
$HTTP_COOKIE_VARS y
$_COOKIE son variables diferentes y que PHP
las trata como tal)
Si la directiva register_globals
está definida, entonces éstas variables
también estarán disponibles en el contexto global
del script; i.e., por separado de las
matrices $_COOKIE
y $HTTP_COOKIE_VARS. Para información
relacionada, consulte el capítulo de seguridad
titulado Uso de
Registros Globales. Estas globales individuales no son
autoglobales.
Nota:
Introducidas en 4.1.0. En versiones anteriores, use
$HTTP_GET_VARS.
Una matriz asociativa de variables pasadas al script actual a
través del método HTTP GET. Global
automáticamente en cualquier contexto.
Esta es una variable 'superglobal', o global
automática. Esto simplemente quiere decir que está
disponible en todos los contextos a lo largo de un script. No
necesita hacer global $_GET; para acceder a
ella dentro de funciones o métodos, como lo hace
con $HTTP_GET_VARS.
$HTTP_GET_VARS contiene la misma
información inicial, pero no es autoglobal. (Note que
$HTTP_GET_VARS y $_GET son
variables diferentes y que PHP las trata como tal)
Si la directiva register_globals
está definida, entonces éstas variables
también estarán disponibles en el contexto global
del script; i.e., por separado de las
matrices $_GET
y $HTTP_GET_VARS. Para información
relacionada, consulte el capítulo de seguridad
titulado Uso de
Registros Globales. Estas globales individuales no son
autoglobales.
Nota:
Introducidas en 4.1.0. En versiones anteriores, use
$HTTP_POST_VARS.
Una matriz asociativa de variables pasadas al script actual a
través del método HTTP POST. Global
automáticamente en cualquier contexto.
Esta es una variable 'superglobal', o global
automática. Esto simplemente quiere decir que está
disponible en todos los contextos a lo largo de un script. No
necesita hacer global $_POST; para acceder a
ella dentro de funciones o métodos, como lo hace
con $HTTP_POST_VARS.
$HTTP_POST_VARS contiene la misma
información inicial, pero no es autoglobal. (Note que
$HTTP_POST_VARS y $_POST
son variables diferentes y que PHP las trata como tal)
Si la directiva register_globals
está definida, entonces éstas variables
también estarán disponibles en el contexto global
del script; i.e., por separado de las
matrices $_POST
y $HTTP_POST_VARS. Para información
relacionada, consulte el capítulo de seguridad
titulado Uso de
Registros Globales. Estas globales individuales no son
autoglobales.
Nota:
Introducidas en 4.1.0. En versiones anteriores, use
$HTTP_POST_FILES.
Una matriz asociativa de elementos cargados al script actual a
través del método HTTP POST. Global
automáticamente en cualquier contexto.
Esta es una variable 'superglobal', o global
automática. Esto simplemente quiere decir que está
disponible en todos los contextos a lo largo de un script. No
necesita hacer global $_FILES; para acceder a
ella dentro de funciones o métodos, como lo hace
con $HTTP_POST_FILES.
$HTTP_POST_FILES contiene la misma
información inicial, pero no es autoglobal. (Note que
$HTTP_POST_FILES y $_FILES
son variables diferentes y que PHP las trata como tal)
Si la directiva register_globals
está definida, entonces éstas variables
también estarán disponibles en el contexto global
del script; i.e., por separado de las
matrices $_FILES
y $HTTP_POST_FILES. Para información
relacionada, consulte el capítulo de seguridad
titulado Uso de
Registros Globales. Estas globales individuales no son
autoglobales.
Nota:
Introducidas en 4.1.0. No existe una matriz equivalente en
versiones anteriores.
Nota:
Antes de PHP 4.3.0, la información
de $_FILES también era incluida
en $_REQUEST.
Una matriz asociativa que consiste en los contenidos
de $_GET, $_POST,
y $_COOKIE.
Esta es una variable 'superglobal', o global
automática. Esto simplemente quiere decir que está
disponible en todos los contextos a lo largo de un script. No
necesita hacer global $_REQUEST; para acceder
a ella dentro de funciones o métodos.
Si la directiva register_globals
está definida, entonces éstas variables
también estarán disponibles en el contexto global
del script; i.e., por separado de la
matriz $_REQUEST. Para información
relacionada, consulte el capítulo de seguridad
titulado Uso de
Registros Globales. Estas globales individuales no son
autoglobales.
Nota:
Introducidas en 4.1.0. En versiones anteriores, use
$HTTP_SESSION_VARS.
Una matriz asociativa que contiene las variables de sesión
disponibles en el script actual. Consulte la documentación
sobre Funciones de
Sesión para más información sobre
cómo es usada ésta matriz.
Esta es una variable 'superglobal', o global
automática. Esto simplemente quiere decir que está
disponible en todos los contextos a lo largo de un script. No
necesita hacer global $_SESSION; para acceder
a ella dentro de funciones o métodos, como lo hace
con $HTTP_SESSION_VARS.
$HTTP_SESSION_VARS contiene la misma
información, pero no es autoglobal. (Note que
$HTTP_SESSION_VARS y
$_SESSION son variable diferentes y que PHP
las trata como tal)
Si la directiva register_globals
está definida, entonces éstas variables
también estarán disponibles en el contexto global
del script; i.e., por separado de las
matrices $_SESSION
y $HTTP_SESSION_VARS. Para información
relacionada, consulte el capítulo de seguridad
titulado Uso de
Registros Globales. Estas globales individuales no son
autoglobales.
Nota:
$GLOBALS ha estado disponible desde PHP
3.0.0.
Una matriz asociativa que contiene referencias a todas las
variables que están definidas actualmente en el contexto
global del script. Los nombres de las variables son las claves de
la matriz.
Esta es una variable 'superglobal', o global
automática. Esto simplemente quiere decir que está
disponible en todos los contextos a lo largo de un script. No
necesita hacer global $_GLOBALS; para acceder
a ella dentro de funciones o métodos.
$php_errormsg es una variable que contiene el
texto del último mensaje de error generado por PHP. Esta
variable solo estará disponibles dentro del contexto en el
que el error ocurrió, y solo si la opción de
configuración track_errors está
habilitada (por defecto está definida como off).