Variáveis pré-definidas
Desde o PHP 4.1.0, o método preferencial para obter variáveis externas é através das superglobais mencionadas acima. Antes disso, as pessoas utilizavam register_globals ou os arrays pré-definidos do PHP ($HTTP_*_VARS). A partir do PHP 5.0.0, os grandes arrays de variáveis pré-definidas podem ser desativadas através da diretiva register_long_arrays .
Variáveis do servidor: $_SERVER
Nota: Introduzida na versão 4.1.0. Em versões anteriores, use $HTTP_SERVER_VARS.
$_SERVER é um array contendo informações como headers, caminhos e localizações do script. Os itens deste array são criados pelo servidor web. Não há garantias que todos os servidores web geram todas elas: alguns servidores talvez omitam algumas ou geram outras que não estão listadas aqui. Mesmo assim, um grande número dessas variáveis estão de acordo com a » especificação CGI 1.1, então você pode esperar encontrá-las nesse array.
Esta é uma variável 'superglobal', ou automaticamente global. Isto significa que ela é disponÃvel em todos os escopos (nÃveis) de um script. Você não precisa fazer um global $_SERVER; para pode acessá-la dentro de funções ou métodos, como era necessário com $HTTP_SERVER_VARS.
$HTTP_SERVER_VARS contém a mesmas informações, mas ela não é uma superglobal.(Note que $HTTP_SERVER_VARS e $_SERVER são variáveis diferentes como também o PHP as manipula diferentemente)
Se a diretiva register_globals está ativa, então essas variáveis tornam-se disponÃveis no escopo global do script (por exemplo, separados dos arrays $_SERVER e $HTTP_SERVER_VARS. Para maiores informações, veja o capÃtulo de segurança entitulado Utilizando registradores globais. Estas variáveis globais individuais não são superglobais.
Você poderá ou não encontrar qualquer um dos seguintes elementos dentro de $_SERVER. Note que poucos (ou nenhum) deles estão disponÃveis (ou não terão qualquer sentido) se você estiver rodando o PHP na linha de comando.
- 'PHP_SELF'
- O nome do arquivo do script atualmente em uso, relativo ao document root. Por exemplo, $_SERVER['PHP_SELF'] em um script com o endereço https://example.com/test.php/foo.bar pode ser /test.php/foo.bar. A constante __FILE__ contém o caminho completo e nome do arquivo (mesmo incluÃdo) atual. Se estiver rodando o PHP em linha de comando, esta variável contém o nome do script desde o PHP 4.3.0. Anteriormente ela não estava disponÃvel.
- 'argv'
- Array de argumentos passado para o script. Quando o script é executado na linha de comando, isto permite um acesso aos parâmetros de linha de comando no estilo do C. Quando chamado via método GET, ele conterá a query string.
- 'argc'
- Contém o número de parâmetros da linha de comando passados para o script (se executando da linha de comando).
- 'GATEWAY_INTERFACE'
- O número de revisão da especificação CGI que o servidor está utilizando, por exemplo : 'CGI/1.1'.
- 'SERVER_ADDR'
- O endereço IP do servidor onde está o script em execução.
- 'SERVER_NAME'
- O nome host do servidor onde o script atual é executado. Se o script está rodando em um host virtual, este será o valor definido para aquele host virtual.
- 'SERVER_SOFTWARE'
- A string de identificação do servidor, fornecida nos headers quando respondendo a requests.
- 'SERVER_PROTOCOL'
- Nome e número de revisão do protocolo de informação pelo qual a página foi requerida, por exemplo 'HTTP/1.0';
- 'REQUEST_METHOD'
-
Contém o método de request utilizando para acessar a página. Geralmente 'GET',
'HEAD', 'POST' ou 'PUT'.
Nota: O script PHP é terminado depois de enviado cabeçalhos (significa depois de produzir alguma saÃda sem saÃda do buffer) se o método da requisição for HEAD.
- 'REQUEST_TIME'
- The timestamp of the start of the request. Available since PHP 5.1.0.
- 'QUERY_STRING'
- A query string (string de solicitação), se houver, pela qual a página foi acessada.
- 'DOCUMENT_ROOT'
- O diretório raiz sob onde o script atual é executado, como definido no arquivos de configuração do servidor.
- 'HTTP_ACCEPT'
- O conteúdo do header Accept: da requisição atual, se houver.
- 'HTTP_ACCEPT_CHARSET'
- O conteúdo do header Accept-Charset: da requisição atual, se houver. Exemplo: 'iso-8859-1,*,utf-8'.
- 'HTTP_ACCEPT_ENCODING'
- O conteúdo do header Accept-Encoding: da requisição atual, se houver. Exemplo: 'gzip'.
- 'HTTP_ACCEPT_LANGUAGE'
- O conteúdo do header Accept-Language: da requisição atual, se houver. Exemplo 'en'.
- 'HTTP_CONNECTION'
- O conteúdo do header Connection: da requisição atual, se houver. Exemplo: 'Keep-Alive'.
- 'HTTP_HOST'
- O conteúdo do header Host: da requisição atual, se houver.
- 'HTTP_REFERER'
- O endereço da página (se houver) através da qual o agente do usuário acessou a página atual. Essa diretiva é informada pelo agente do usuário. Nem todos os browsers geram esse header, e alguns ainda possuem a habilidade de modificar o conteúdo do HTTP_REFERER como recurso. Em poucas palavras, não é confiável.
- 'HTTP_USER_AGENT'
- O conteúdo do header User-Agent: da requisição atual, se houver. É uma string denotando o agente de usuário pelo qual a página é acessada. Um exemplo tÃpico é: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Além de outras coisas, você pode utilizar este valor com get_browser() para personalizar a geração de suas páginas para as capacidades do agente do usuário.
- 'HTTPS'
- Define para um valor não vazio se o script foi requisitado através do protocolo HTTPS. Note que quando usando ISAPI com IIS, o valor será off se a requisição não for feita por protocolo HTTPS.
- 'REMOTE_ADDR'
- O endereço IP de onde o usuário está visualizado a página atual.
- 'REMOTE_HOST'
-
O nome do host que o usuário utilizou para chamar a página
atual. O DNS reverso (lookup) do
REMOTE_ADDR do usuário.
Nota: Seu servidor web precisa estar configurado para criar essa variável. Por exemplo, no Apache você precisa colocar um HostnameLookups On dentro do httpd.conf. Veja também gethostbyaddr().
- 'REMOTE_PORT'
- A porta TCP na máquina do usuário utilizada para comunicação com o servidor web.
- 'SCRIPT_FILENAME'
-
O caminho absoluto o script atualmente em execução.
Nota: Se o script for executado pela CLI com um caminho relativo, como file.php ou ../file.php, $_SERVER['SCRIPT_FILENAME'] irá conter o caminho relativo especificado pelo usuário.
- 'SERVER_ADMIN'
- O valor fornecido pela diretiva SERVER_ADMIN (do Apache) no arquivo de configuração do servidor. Se o script está sendo executado em um host virtual, este será os valores definidos para aquele host virtual.
- 'SERVER_PORT'
- A porta na máquina servidora utilizada pelo servidor web para comunicação. Como default, este valor é '80'. Utilizando SSL, entretanto, mudará esse valor para a porta de comunicação segura HTTP.
- 'SERVER_SIGNATURE'
- String contendo a versão do servidor e nome do host virtual que é adicionado às páginas geradas no servidor, se ativo.
- 'PATH_TRANSLATED'
-
O caminho real do script relativo ao sistema de arquivos
(não o document root), depois realizou todos os mapeamentos
de caminhos (virtual-to-real).
Nota: A partir do PHP 4.3.2, PATH_TRANSLATED não mais existe implicitamente sob a SAPI do Apache 2, ao contrário da mesma situação no Apache 1, onde ela tinha o mesmo valor da variável de servidor SCRIPT_FILENAME, quando a mesma não era configurada pelo Apache. Essa mudança foi realizada para conformidade com a especificação CGI, onde PATH_TRANSLATED deve existir somente se PATH_INFO estiver definida. Apache 2 users may use AcceptPathInfo = On inside httpd.conf to define PATH_INFO.
- 'SCRIPT_NAME'
- Contém o caminho completo do script atual. Útil para páginas que precisam apontar para elas mesmas (dinamicamente). A constante __FILE__ contém o caminho completo e nome do arquivo (mesmo incluÃdo) atual.
- 'REQUEST_URI'
- O URI fornecido para acessar a página atual, por exemplo, '/index.html'.
- 'PHP_AUTH_DIGEST'
- Quando executando no Apache como módulo fazendo autenticação HTTP esta variável é definida para o cabeçalho 'Authorization' enviado pelo cliente (que você pode então usar para fazer apropriada validação).
- 'PHP_AUTH_USER'
- Quando executando sob o Apache ou IIS (ISAPI no PHP 5) como módulo e fazendo autenticaçà o HTTP, esta variável estará definida com o username fornecido pelo usuário.
- 'PHP_AUTH_PW'
- Quando executando sob o Apache ou IIS (ISAPI no PHP 5) como módulo e fazendo autenticaçà o HTTP, esta variável estará definida com a senha fornecida pelo usuário.
- 'AUTH_TYPE'
- Quando executando sob o Apache como módulo e fazendo autenticaçà o HTTP, esta variável estará definida com o tipo de autenticação utilizado.
Variáveis de ambiente: $_ENV
Nota: Introduzida na versão 4.1.0. Em versões anteriores, utilize $HTTP_ENV_VARS.
Estas variáveis são importadas dentro no espaço global do PHP do ambiente sob qual o interpretador do PHP está rodando. Muitos são são criados no shell (terminal) sob o qual o PHP é executado e sistemas diferentes normalmente utilizam vários sabores de shells, e uma lista definitiva é impossÃvel. Verifique a documentação de sua shell para a lista de variáveis ambiente definidas.
Outras variáveis ambiente incluem as variáveis CGI, informadas aqui independente do PHP estar rodando como um módulo do servidor ou como processador CGI.
Esta é uma variável 'superglobal', ou automaticamente global. Isto significa que ela é disponÃvel em todos os escopos (nÃveis) de um script. Você não precisa fazer um global $_ENV; para pode acessá-la dentro de funções ou métodos, como era necessário com $HTTP_ENV_VARS.
$HTTP_ENV_VARS contém a mesma informação, mas não é uma superglobal. (Note que $HTTP_ENV_VARS e $_ENV são variáveis diferentes como também o PHP as manipula diferentemente)
Se a diretiva register_globals está ativa, então essas variáveis tornam-se disponÃveis no escopo global do script (por exemplo, separados dos arrays $_ENV e $HTTP_ENV_VARS. Para maiores informações, veja o capÃtulo de segurança entitulado Utilizando registradores globais. Estas variáveis globais individuais não são superglobais.
Variáveis HTTP GET: $_GET
Nota: Introduzida na versão 4.1.0. Em versões anteriores, use $HTTP_GET_VARS.
Contém um array associativo de variáveis passadas para o script atual através do método HTTP GET.
Esta é uma variável 'superglobal', ou automaticamente global. Isto significa que ela é disponÃvel em todos os escopos (nÃveis) de um script. Você não precisa fazer um global $_GET; para pode acessá-la dentro de funções ou métodos, como era necessário com $HTTP_GET_VARS.
$HTTP_GET_VARS contém as mesmas informações, mas não é uma superglobal. (Note que $HTTP_GET_VARS e $_GET são variáveis diferentes como também o PHP as manipula diferentemente)
Se a diretiva register_globals está ativa, então essas variáveis tornam-se disponÃveis no escopo global do script (por exemplo, separados dos arrays $_GET e $HTTP_GET_VARS. Para maiores informações, veja o capÃtulo de segurança entitulado Utilizando registradores globais. Estas variáveis globais individuais não são superglobais.
Variaveis HTTP POST: $_POST
Nota: Introduzida na versão 4.1.0. Em versões anteriores, use $HTTP_POST_VARS.
Contém um array associativo de variáveis passadas para o script atual através do método HTTP POST.
Esta é uma variável 'superglobal', ou automaticamente global. Isto siginifica que ela é disponÃvel em todos os escopos (nÃveis) de um script. Você não precisa fazer um global $_POST; para pode acessá-la dentro de funções ou métodos, como era necessário com $HTTP_POST_VARS.
$HTTP_POST_VARS contém as mesmas informações, mas não é uma superglobal. (Note que $HTTP_POST_VARS e $_POST são variáveis diferentes como também o PHP as manipula diferentemente)
Se a diretiva register_globals está ativa, então essas variáveis tornam-se disponÃveis no escopo global do script (por exemplo, separados dos arrays $_POST e $HTTP_POST_VARS. Para maiores informações, veja o capÃtulo de segurança entitulado Utilizando registradores globais. Estas variáveis globais individuais não são superglobais.
Variáveis de upload de arquivos HTTP: $_FILES
Nota: Introduzida na versão 4.1.0. Em versões anteriores, use $HTTP_POST_FILES.
Contém um array associativo dos itens carregador no script atual através do método HTTP POST.
Esta é uma variável 'superglobal', ou automaticamente global. Isto significa que ela é disponÃvel em todos os escopos (nÃveis) de um script. Você não precisa fazer um global $_FILES; para pode acessá-la dentro de funções ou métodos, como era necessário com $HTTP_FILES_VARS.
$HTTP_POST_FILES contém as mesmas informações, mas não é uma superglobal. (Note que $HTTP_POST_FILES e $_FILES são variáveis diferentes e portanto o PHP as manipula diferentemente)
Se a diretiva register_globals está ativa, então essas variáveis tornam-se disponÃveis no escopo global do script (por exemplo, separados dos arrays $_FILES e $HTTP_POST_FILES. Para maiores informações, veja o capÃtulo de segurança entitulado Utilizando registradores globais. Estas variáveis globais individuais não são superglobais.
Variáveis da requisição: $_REQUEST
Nota: Introduzida na versão 4.1.0. Não há array equivalente em versões anteriores.
Nota: Até o PHP 4.3.0, as informações de $_FILES também estavam incluÃdas em $_REQUEST.
Contém um array associativo com os conteúdos de $_GET, $_POST e $_COOKIE.
Esta é uma variável 'superglobal', ou automaticamente global. Isto significa que ela é disponÃvel em todos os escopos (nÃveis) de um script. Você não precisa fazer um global $_REQUEST; para pode acessá-la dentro de funções ou métodos.
Se a diretiva register_globals está ativa, então essas variáveis tornam-se disponÃveis no escopo global do script (por exemplo, separados dos arrays $_REQUEST. Para maiores informações, veja o capÃtulo de segurança entitulado Utilizando registradores globais. Estas variáveis globais individuais não são superglobais.
Variáveis de sessão: $_SESSION
Nota: Introduzida na versão 4.1.0. Em versões anteriores, use $HTTP_SESSION_VARS.
Contém um array associativo das variáveis de sessão disponÃveis para o script atual. Veja a documentação das funções de Sessões para maiores informações de como utilizá-las.
Esta é uma variável 'superglobal', ou automaticamente global. Isto siginifica que ela é disponÃvel em todos os escopos (nÃveis) de um script. Você não precisa fazer um global $_SESSION; para pode acessá-la dentro de funções ou métodos, como era necessário com $HTTP_SESSION_VARS.
$HTTP_SESSION_VARS contém as mesmas informações, mas não é uma superglobal. (Note que $HTTP_SESSION_VARS e $_SESSION são variáveis diferentes e portanto o PHP as manipula diferentemente)
Se a diretiva register_globals está ativa, então essas variáveis tornam-se disponÃveis no escopo global do script (por exemplo, separados dos arrays $_SESSION e $HTTP_SESSION_VARS Para maiores informações, veja o capÃtulo de segurança entitulado Utilizando registradores globais. Estas variáveis globais individuais não são superglobais.
Variaveis globais: $GLOBALS
Nota: $GLOBALS foi disponibilizada desde a versão 3.0.0.
Um array associativo contendo referências para todas as variáveis atualmente definidas no escopo global do script. Os nomes das variáveis são as chaves do array.
Esta é uma variável 'superglobal', ou automaticamente global. Isto significa que ela é disponÃvel em todos os escopos (nÃveis) de um script. Você não precisa fazer um global $GLOBALS; para pode acessá-la dentro de funções ou métodos.
A mensagem de erro anterior: $php_errormsg
$php_errormsg é uma variável contendo o texto da última mensagem de erro gerada pelo PHP. Esta variável somente está disponÃvel no escopo em que o erro ocorreu, e somente se a opção de configuração track_errors está ativa (seu default é off).
Raw POST data: $HTTP_RAW_POST_DATA
$HTTP_RAW_POST_DATA contém raw POST data. Veja always_populate_raw_post_data
HTTP response headers: $http_response_header
O array $http_response_header é similar a função get_headers(). Quando usando a HTTP wrapper $http_response_header irá popular com cabeçalhos HTTP de resposta.