Busca


imprimir pdf

Como permitir a passagem de parâmetro em PHP?


Exemplo do problema


Aqui está um exemplo simples afim de mostrar o problema:

Edite um script "testphp.php"

[root@nsXXXX root]# cd /home/ovh/www
[root@nsXXXX root]# pico testphp.php


e introduza o seguinte conteúdo:

if (!$conteúdo)
{
$conteúdo="Nada";
}

echo "O parâmetro passado contem conteúdo=$conteúdo";
echo "Se Nada então a opção register_globals esta Off";
?>


Testemos então este pequeno script executando-o pelo url:

http://nsXXXX.ovh.net/testphp.php?conteudo=funciona

Deverá obter o seguinte:

O parâmetro passado contem o conteúdo=Nada
"Se Nada então a opção register_globals está Off"

Solução


Para solucionar o problema, temos de activar uma opção no ficheiro php.ini. Localize o ficheiro e edite-o para colocar a opção register_globals a On.

Isto pode ser feito via SSH (consultar guia http://guias.ovh.pt/SshSobreServidorDedicado/).

[root@nsXXXX root]# locate php.ini
...
/usr/local/lib/php.ini
[root@nsXXXX root]# cat /usr/local/lib/php.ini | grep -i register_globals
; register_globals to be on; Using form variables as globals can easily lead
register_globals = Off
[root@nsXXXX root]# pico /usr/local/lib/php.ini
[root@nsXXXX root]# cat /usr/local/lib/php.ini | grep -i register_globals
; register_globals to be on; Using form variables as globals can easily lead
register_globals = On


A seguir:

  • Se PHP esta em módulo deverá reiniciar o Apache afim que a modificação toma efeito:

[root@nsXXXX root]# /etc/init.d/httpd restart

  • Se PHP esta em cgi não precisa.

Pode testar novamente o script.

http://nsXXXX.ovh.net/testphp.php?contenu=camarche

Agora, deverá obter:

O parâmetro passado contem conteúdo=funciona
"Se Nada então a opção register_globals está em Off"