Variáveis de sistema em PHP
Dada a sua natureza de linguagem do lado do servidor, PHP é capaz de nos dar acesso a toda uma série de variáveis que nos informam sobre o nosso servidor e sobre o cliente. A informação destas variáveis é atribuída pelo servidor e em nenhum caso nos é possível modificar os seus valores diretamente mediante o script. Para fazê-lo é necessário influir sobre a propriedade que definem.
Existem várias variáveis deste tipo, algumas sem utilidade aparente e outras realmente interessantes e com uma aplicação direta para o nosso site. Aqui enumeramos algumas destas variáveis e a informação que nos oferecem:
Variável | Descrição |
---|---|
$HTTP_USER_AGENT | Informa-nos principalmente sobre o sistema operativo e tipo e versão do navegador utilizado pelo cibernauta. A sua principal utilidade radica em que, a partir desta informação, podemos redireccionar os nossos usuários para páginas optimizadas para o seu navegador ou realizar qualquer outro tipo de ação no contexto de um navegador determinado. |
$HTTP_ACCEPT_LANGUAGE | Retorna-nos a ou as abreviações da língua considerada como principal pelo navegador. Esta língua ou línguas principais podem ser escolhidas no menu de opções do navegador. Esta variável torna-se também extremamente útil para enviar o cibernauta às páginas na sua língua, se é que existem. |
$HTTP_REFERER | Indica-nos a URL com a qual o cibernauta teve acesso a página. Muito interessante para gerar botões de “atrás” dinâmicos ou para criar os nossos próprios sistemas estatísticos. |
$PHP_SELF | Retorna-nos uma cadeia com a URL do script que está a ser executado. Muito interessante para criar botões para recarregar a página. |
$HTTP_GET_VARS | Trata-se de um array que armazena os nomes e os conteúdos das variáveis enviadas ao script por URL ou por formulários GET. |
$HTTP_POST_VARS | Trata-se de um array que armazena os nomes e os conteúdos das variáveis enviadas ao script por meio de um formulário POST. |
$HTTP_COOKIES_VARS | Trata-se de um array que armazena os nomes o os conteúdos das cookies. Veremos o que são mais tarde. |
$PHP_AUTH_USER | Armazena a variável usuário quando se efectua a entrada a páginas de acesso restringido. Combinado com $PHP_AUTH_PW é ideal para controlar o acesso às páginas internas do site. |
$PHP_AUTH_PW | Armazena a variável password quando se efectua a entrada a páginas de acesso restringido. Combinado com $PHP_AUTH_USER é ideal para controlar o acesso às páginas internas do site. |
$REMOTE_ADDR | Mostra o endereço IP do visitante. |
$DOCUMENT_ROOT | Retorna-nos o path físico no qual se encontra alojada a página no servidor. |
$PHPSESSID | Guarda o identificador da sessão do usuário. Veremos mais à frente o que são as sessões. |
Nem todas as variáveis estão disponíveis na totalidade dos servidores ou em determinadas versões dum mesmo servidor. Ademais, algumas delas tem de ser previamente activadas ou definidas por meio de algum evento. Assim, por exemplo, a variável $HTTP_REFERER não está definida a menos que o cibernauta aceda ao script a partir de um link desde outra página.
Variáveis superglobais
A partir de PHP 4.1.0, dispõem-se de um conjunto de variáveis de tipo array que mantêm informação do sistema, chamadas superglobais porque se definem automaticamente num âmbito global.
Estas variáveis fazem referência ás mesmas que se acediam antes por meio dos arrays do tipo $HTTP_*_VARS. Estas ainda existem, ainda que a partir de PHP 5.0.0 podem-se desactivar com a diretiva register_long_arrays.
A lista destas variáveis, extraída directamente da documentação de PHP é a seguinte:
$GLOBALS
Contem uma referência a cada variável disponível no espectro das variáveis do script. As chaves desta matriz são os nomes das variáveis globais. $GLOBALS existe desde PHP 3.
$_SERVER
Variáveis definidas pelo servidor web ou directamente relacionadas com o entorno onde se está a executar.Análoga a antiga matriz $HTTP_SERVER_VARS (a qual ainda está disponível, ainda que não se utilize).
$_GET
Variáveis proporcionadas ao script por meio de HTTP GET. Análoga a antiga matriz $HTTP_GET_VARS (que ainda está disponível, ainda que não se utilize).
$_POST
Variáveis proporcionadas ao script por meio de HTTP POST. Análoga a antiga matriz $HTTP_POST_VARS (que ainda está disponível, ainda que não se utilize).
$_COOKIE
Variáveis proporcionadas ao script por meio de HTTP cookies. Análoga a antiga matriz $HTTP_COOKIE_VARS (que ainda está disponível, ainda que não se utilize).
$_FILES
Variáveis proporcionadas ao script por meio da subida de ficheiros via HTTP. Análoga a antiga matriz $HTTP_POST_FILES (que ainda está disponível, ainda que não se utilize).
$_ENV
Variáveis proporcionadas ao script por meio do entorno. Análoga a antiga matriz $HTTP_ENV_VARS (que ainda está disponível, ainda que não se utilize).
$_REQUEST
Variáveis proporcionadas ao script por meio de qualquer mecanismo de entrada do usuário e portanto não se pode confiar nelas. A presença e a ordem em que aparecem as variáveis nesta matriz são definidas pela directiva de configuração variables_order. Esta matriz não tem um análogo em versões anteriores a PHP 4.1.0. Veja também import_request_variables().
$_SESSION
Variáveis registradas na sessão do script. Análoga a antiga matriz $HTTP_SESSION_VARS (que ainda está disponível, ainda que não se utilize).