Driblando o REGISTER GLOBALS OFF

Publicado por EVERTON DA ROSA em 19/03/2007

[ Hits: 11.120 ]

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

Revista Espírito Livre

txt2tags - convertendo texto em notações especiais

Exibindo resultados de uma consulta MySQL com PHP

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

Gerador de relatórios Agata Report

Leitura recomendada

Agendando execução de scripts PHP

Como instalar o PHP5 no Debian 9 Stretch

Plugin com controle de acesso para CakePHP 3

Framework PHP

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

  

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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts