Driblando o REGISTER GLOBALS OFF

Publicado por EVERTON DA ROSA em 19/03/2007

[ Hits: 12.095 ]

Blog: http://everton3x.github.io

 


Driblando o REGISTER GLOBALS OFF



Muitas vezes desejamos fazer um script PHP que possa rodar sob diversas configurações de servidores. Dentre os principais problemas encontrados é a configuração do REGISTERS GLOBALS, configuração que, quando setada para ON, nos permite utilizar o nome dos campos dos formulários como nome das variáveis GET e POST, evitando a necessidade de utilizarmos referências $_GET[campo] e $_POST[campo].

Evidentemente que é possível utilizarmos as referências aos arrays #_GET e $_POST para trabalharmos com variáveis passadas por formulários, mas trabalhar com nomes do tipo $campo é muito mais prático.

Para que não tenhamos que atribuir nomes para cada variável ($campo=$_GET[campo], apresento o script abaixo que pode ser incluído em suas páginas, inclusive através de include().

<?
while (list($n,$v) = each($_POST)) {
    $$n=$v;
}
?>

Caso os valores sejam passados por GET, deve-se trocar $_POST por $_GET.

Eu uso um arquivo post.php e outro get.php através de require mas você pode colocar diretamente o código em suas páginas ou criar uma função para tal.

Outras dicas deste autor

W3Schools.com: tutoriais, referências e exemplos voltados para a web

Revista Espírito Livre

Geany IDE: mais do que um simples editor de texto

Exibindo resultados de uma consulta MySQL com PHP

Utilizando argumentos padrão em funções no PHP

Leitura recomendada

Gerando Miniaturas de Imagens com PHP

Instalando Zend Framework

Exemplo de conexão ao banco de dados orientada a objeto em PHP+MySQL

Servidor web PHP completo

Funções com nomes variáveis em PHP, isso existe sim!

  

Comentários
[1] Comentário enviado por jragomes em 19/03/2007 - 17:04h

boa dica, quando você pega sistemas legados que usa Globals = on. Mas no caso de aplicações recentes, é melhor manter o globals = off, pois além do quesito segurança, há o quesito padronização e leitura de código. Se você tem no código as variáveis descritas como $_POST, $_GET, $_SERVER, $_SESSION, é muito mais fácil saber o que está acontecendo, de onde vem e para onde vai o fluxo do programa.

[2] Comentário enviado por candido1212 em 01/06/2008 - 17:49h

por que não usar:

extract ($_REQUEST);

qualquer chave do array vai transformar em uma variavel.




Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts