terça-feira, 26 de agosto de 2008

Variáveis Predefinidas



As variáveis predefinidas são variáveis criadas automaticamente pelo interpretador do PHP. Elas são utilizadas vastamente no desenvolvimento de aplicações, pois, provém diversas informações de interação da aplicação, sendo acessíveis em qualquer parte do código.

Com tais variáveis é possível recuperar informações de formulários, de cookies, do servidor e do visitante do site.
Pretendo resumir as variáveis utilizadas com mais frequência.


- Variável predefinida $_SERVER

A variável predefinida $_SERVER é um array que armazena informações repassadas pelo servidor web relacionadas a página que está sendo executada.

Como o PHP roda em diversos servidores, que por sua vez são desenvolvidos com propósitos diferentes, pode ocorrer de nem todas as variáveis aqui citadas estarem preenchidas com o valor esperado. Pode acontecer também de haver outras variáveis não documentadas.

Descobrindo qual página foi solicitada pelo usuário: utilize $_SERVER['PHP_SELF'];


<?php
    
echo $_SERVER['PHP_SELF'];
?>



Se você salvar o código acima na pasta htdocs do seu apache e acessar como: http://localhost/minhapagina.php, irá aparecer '/minhapagina.php'.
Se ela estiver dentro de um subdiretório, o subdiretório também será listado.

Descobrindo qual o servidor que está instalado: utilize $_SERVER['SERVER_NAME'];

<?php
    
echo $_SERVER['SERVER_NAME'];
?>



Se você estiver rodando o script em sua casa, será exibido 'localhost'.

Recuperando os parâmetros de uma URL: utilize $_SERVER['QUERY_STRING'];

<?php
    
echo $_SERVER['QUERY_STRING'];
?>



A variável $_SERVER['QUERY_STRING'] conterá os parâmetros passados em uma URL. Esses parâmetros são todos os caracteres existentes na url após o ponto de interrogação (?). Para testar o script acima, após o endereço da página acrescente: ?site=manjaphp.blogspot.com&teste=true
Tudo que estiver após o ? será exibido.

Obs: Esse não é o melhor método para recuperar parâmetros de uma URL, porém, é muito valioso para debugar aplicações.

Descobrindo onde são armazenados os arquivos de um servidor web: utilize echo $_SERVER['DOCUMENT_ROOT'];

<?php
    
echo $_SERVER['DOCUMENT_ROOT'];
?>



Essa variável exibe o diretório padrão de armazenagem dos arquivos do servidor web, se for o apache, muito provavelmente será a pasta htdocs.

Descobrindo o browser (navegador) e o sistema operacional do usuário: utilize echo $_SERVER['HTTP_USER_AGENT'];

<?php
    
echo $_SERVER['HTTP_USER_AGENT'];
?>


Essa informação é passada pelo browser do usuário, e pode ser facilmente modificada, sendo assim, impossível de confiar em tal informação.

Descobrindo o IP do usuário: utilize $_SERVER['REMOTE_ADDR'];

<?php
    
echo $_SERVER['REMOTE_ADDR'];
?>



Descobrindo o caminho físico do arquivo: utilize:

<?php
    
echo $_SERVER['SCRIPT_FILENAME'];
?>




- Variável predefinida $_ENV


Com a variável $_ENV é possível recuperar variáveis de ambiente do sistema operacional. As variáveis de ambiente são particulares a cada sistema e a cada usuário.

Um exemplo, no Windows, existe a variável PATH, que diz ao sistema operacional onde procurar por um programa que for solicitado. Portanto, quando você digita somente o nome de um programa na ciaxa de comando Executar, do menu Iniciar do Windows, o Windos procura o programa em cada diretório que está armazenado na variável PATH.

E com o PHP, também podemos acessar essas variáveis do ambiente do servidor. Veja como acessar a variável PATH do ambiente:

<?php
    
echo $_ENV['PATH'];
?>


Irá imprimir uma lista de diretórios, separados por ;


- Variável predefinida $_COOKIE


Com a variável $_COOKIE é possível recuperar informações armazenadas em cookie do navegador do usuário. Muito útil, comumente utilizadas nas diversas aplicações web, como por exemplo, webmail, comércio eletrônico, sites de relacionamentos, etc.

Essa variável vai ser melhor explicada em um próximo post aqui no manjaphp.blogspot.com

- Variável predefinida $_GET

A variável $_GET é um array, disponível em todo código PHP, que serve para recuperar os parâmetros passado na url, separadamente.
Exemplo:


<?php
    
echo 'Site: ' $_GET['site'];
?>



O código acima, se acessado da seguinte maneira 'http://localhost/pagina.php?site=manjaphp.blogspot.com' exibirá a seguinte saída:
Site: manjaphp.blogspot.com

- Variável predefinida $_POST

Com a variável $_POST é possível recuperar informações enviadas pelo usuário utilizando um formulário.
Essa variável vai ser melhor explicada em um próximo post aqui no manjaphp.blogspot.com

- Variável predefinida $_FILES

Com a variável $_POST é possível recuperar arquivos enviados (upload) pelo usuário utilizando um formulário.
Essa variável vai ser melhor explicada em um próximo post aqui no manjaphp.blogspot.com

- Variável predefinida $_REQUEST

A variável $_REQUEST reúne os valores das variáveis $_GET, $_POST e $_COOKIES. Ou seja, se voc não tem certeza se a variável vai ser informada na URL ou em um formulário ou em um cookie, você pode utilizar $_REQUEST, que tem todas essas variávels ($_GET, $_POST e $_COOKIES).

<?php
    
echo 'Site: ' $_REQUEST['site'];
?>


Obs: Tome muito cuidado ao utilizá-la. Não saber de onde vem, pode ser uma falha de segurança.

- Variável predefinida $_SESSION

A variável $_SESSION pode armazenar varáveis durante uma sessão do usuário. Entende-se por sessão o tempo de navegação do usuário por diversas páginas do seu site, sendo possíve passar variáveis de uma página para outra, até que a sessão termine, o que pode acontecer por expirar o tempo, ou pelo execução do código de encerramento de sessão, ou pelo fechamento do navegador do usuário.
Essa variável vai ser melhor explicada em um próximo post aqui no manjaphp.blogspot.com

- Variável predefinida $GLOBALS

A variável $GLOBALS define as variáveis que podem ser acessíveis de qualquer parte do código.
Esse recurso, pode ser utilizado, com cautela, para tornar variáveis de configurações, ou outro valor, disponíveis para as funções que o usuário pode criar.

Esse foi um breve resumo das variáveis predefinidas pelo PHP. O uso correto de cada uma vai ser exposto nesse blog, mais adiante.

Nenhum comentário: