Driblando o REGISTER GLOBALS OFF

Publicado por EVERTON DA ROSA em 19/03/2007

[ Hits: 10.788 ]

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

Gerador de relatórios Agata Report

Exibindo resultados de uma consulta MySQL com PHP

Sobre variáveis globais, locais e estáticas em PHP

Utilizando o loop FOR em PHP

Leitura recomendada

Lista de discussão de desenvolvedores PHP de Minas Gerais

Populate Object - Aumentando a produtividade de forma bastante simples (PHP + formulário HTML)

Autenticar usuário e mostrar os membros de um grupo no site PHP via LDAP no AD W2K12

Escovando bits em PHP: operações bitwise e uma função debug

Integração com PagSeguro no CakePHP 2.x

  

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
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts