Passagem de valores no PHP com register_globals=off

Uma coisinha que eu sempre esqueço no PHP é que a partir da versão 4.2 a variável de configuração register_globals vem com o valor OFF por padrão. Para entender no que isso implica leva em conta o seguinte exemplo:

Vamos pegar por exemplo o endereço http://servidor/?t=oi. Antes, para tratar a variável a bastava fazer um script assim:

    <?
        echo $t;
    ?>

Com a desativação das variáveis globais agora é necessário especificar a origem. No exemplo acima o valor da variável t é passado usando o método get, de forma que a gente usa o array _GET:

    <?
        echo $_GET[\’t\’];
    ?>

O problema que eu vejo nesse tipo de coisa é que, durante a etapa de desenvolvimento, eu costumo usar o método GET para ver se as variáveis estão sendo repassadas de forma correta e, depois do script estar funcionando como desejado, passo a usar o método POST, para que os dados não fiquem registrados no arquivo de log do Apache. Assim, ter que ficar mudando de _GET para _POST é chato pra burro. Uma solução é adotar algo assim:

    <?
        $t = $_GET[\’t\’].$_POST[\’t\’];
        echo $t;
    ?>

Afinal, usar o dois métodos GET e POST ao mesmo tempo é algo meio improvável (há como, mas digamos que é algo que não é para ser feito em casa), de forma que sempre um dos valores será nulo. Algo me diz que essa não é a solução mais elegante, e que deve ter algo melhor, mas por hora isso supre as minhas necessidades…

This entry was posted in Sem categoria. Bookmark the permalink.

Deixe um comentário