Variables Predefinidas
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_
Variables de servidor: $_SERVER
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;
i_e_ 'HTTP/1_0';
- 'REQUEST_METHOD'
Cuál método de petición fue usado para acceder a
la página; i_e_ '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_
- '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_
Variables de entorno: $_ENV
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_
Cookies HTTP: $_COOKIE
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_
Variables HTTP GET: $_GET
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_
Variables HTTP POST: $_POST
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_
Variables de carga de archivos HTTP: $_FILES
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_
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_
Variables de petición: $_REQUEST
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_
Variables de sesión: $_SESSION
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_
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_
Variables globales: $GLOBALS
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_
El mensaje de error previo: $php_errormsg
$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)_