Recherche


imprimer pdf
Comment permettre le passage de paramètre en PHP ?

Exemple du problème

Voici un exemple simple afin de montrer le problème :

Éditez un script "testphp.php"

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


et mettez-y le contenu suivant :

<?

if (!$contenu)
{
$contenu="Rien";
}

echo "Le paramètre passé contient contenu=<b>$contenu</b>";
echo "<i>Si Rien alors l'option register_globals est à Off</i>";

?>


Testons donc ce petit script en l'exécutant par url :

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

Vous devriez avoir ceci :

Le paramètre passé contient contenu=Rien
"Si Rien alors l'option register_globals est à Off"

Solution

Il faut pour cela activer une option dans le fichier php.ini Donc vous localisez le fichier puis vous l'éditez pour mettre l'option register_globals à On.

Ceci se fait bien sur via SSH (cf guide http://guides.ovh.net/SshSurServeurDedie/).

[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


Ensuite:

  • Si PHP est en module il faudra relancer Apache afin de prendre en compte la modification :


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

  • Si PHP est en cgi pas besoin.

Vous pouvez tester à nouveau le script en exemple.

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

Vous devriez avoir ceci maintenant :

Le paramètre passé contient contenu=camarche
"Si Rien alors l'option register_globals est à Off"