Driblando o REGISTER GLOBALS OFF

Publicado por EVERTON DA ROSA em 19/03/2007

[ Hits: 11.487 ]

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

Como configurar um favicon

Exibindo resultados de uma consulta MySQL com PHP

Extensões do FireFox para se ter no dia-a-dia

Djl: Um Game Manager ao estilo do Steam

PHPClasses.org

Leitura recomendada

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

Instalação e configuração do fórum phpBB3 no CentOS 7

Imprimindo dados enviados via PHP

Cuidados de segurança com o PHP

Variáveis variáveis em PHP

  

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