Driblando o REGISTER GLOBALS OFF

Publicado por EVERTON DA ROSA em 19/03/2007

[ Hits: 11.191 ]

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

PHPClasses.org

Crie sua própria classe Javascript

Djl: Um Game Manager ao estilo do Steam

Gerador de relatórios Agata Report

Orion - Extração e conversão de dados de arquivos texto e CSV

Leitura recomendada

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

Conversão de Arquivo TXT em PHP

Plugin com controle de acesso para CakePHP 3

Nasce site sobre Zend Framework

Como instalar o PHP5 no Debian 9 Stretch

  

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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts