Driblando o REGISTER GLOBALS OFF
Dica publicada em PHP / Avançado
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().
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;
}
?>
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.