Pular para o conteúdo

Driblando o REGISTER GLOBALS OFF

Dica publicada em PHP / Avançado
EVERTON DA ROSA everton3x
Hits: 12.120 Categoria: PHP Subcategoria: Avançado
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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().

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
<?
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.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Usando o FireFox para descobrir sites fraudulentos

Codepress: editor online com destaque de sintaxe e muito mais

RAC - Rows and Columns

txt2tags - convertendo texto em notações especiais

Exibindo resultados de uma consulta MySQL com PHP

PHPBurn e PHP Cupé: Dois novos frameworks PHP nacionais

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

Gerando documentação de projetos PHP com o DocBlox

Enviar aspas em PHP de maneira menos suja

Agilizando criação de formulários em PHP usando o laço FOR

#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

Entre na sua conta para comentar.