Erros relacionados a register_globals são muito comuns no PHP. As mensagens normalmente são:
Error: Directive 'register_globals' is deprecated in PHP 5.3 and greater
E também:
FATAL ERROR: register_globals is disabled in php.ini
Por que o erro register_globals ocorre ?
Nas versões 5.4 e mais recentes do PHP, a diretiva register_globals foi descontinuada. Esta diretiva servia, para de uma forma fácil pegar todos os parametros $_GET e $_POST e transformá-los de forma automática em variáveis locais. Por exemplo, um formulário com variáveis $_POST[‘nome’] e $_POST[‘telefone’] , com o register_globals ativado, são transformadas automaticamente para as variaveis $nome e $telefone. Nas versões mais novas, esta função foi desabilitada por colocar em risco a segurança de muitas aplicações em PHP.
Mostraremos duas formas de se resolver este problema.
Método 1 : Usando o extract()
O comando extract nada mais é do que a mesma coisa que o register_globals , quando habilitado, fazia nas versões antigas do PHP (5.3 e anteriores). Ele pega todo o conteúdo do $_GET e $_POST e os transforma em variáveis locais.
Esta solução é bastante simples. Basta adicionar esta linha ao início do seu código fonte em PHP:
<?php extract($_REQUEST); ?>
Método 2: Habilitando o register_globals novamente
Algumas aplicações não permitem este tipo de edição de código fonte. Desta forma, para solucionar este erro, precisaremos alterar a versão do PHP para 5.3 (caso estejamos usando um PHP mais recente), e habilitar a esta diretiva.
O primeiro passo é acessar seu painel de controle cPanel. Para isso, acesse http://meusite.com:2082 , alterando meusite.com pelo domínio do seu site.
Em seguida, clique sobre a opção Select PHP Version.
Na tela do PHP Selector, você pode ver a versão atual do PHP. Neste exemplo, nosso PHP está na versão 5.6.
Conforme mencionamos antes, o register_globals foi desabilitado nas versões 5.4 e superior.
Para solucionar o problema, selecione a versão 5.3 e clique em Set as current.
Em seguida, clique em Switch to PHP Options
Em seguida, localize o parametro register_globals. Ele estará marcado como Off (desabilitado).
Clique sobre o texto Off , conforme indicado na imagem.
Em seguida, altere ele para On e clique em Aplicar.
Observe o valor do parametro já alterado.
Em seguida, clique em Salvar.
Pronto! O register_globals está habilitado, e o erro solucionado!