ApachePhpParameterDurchlassen


Wie kann ich PHP-Parameter durchlassen?


Beschreibung des Problems


Hier ein einfaches Beispiel, um das Problem deutlich zu machen:

Editieren Sie ein Script namens "testphp.php"

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

mit folgendem Inhalt:

<?

if (!$inhalt)
{
$inhalt="leer";
}

echo "Der übergebene Parameter enthält den Inhalt=<b>$inhalt</b>";
echo "<i>falls leer dann ist die Option register_globals deaktiviert</i>";

?>


Testen Sie dieses kleine Skript, indem sie diese URL aufrufen:

http://nsXXXX.ovh.net/testphp.php?inhalt=esgeht

Sie müssten diese Ausgabe erhalten:

Der übergebene Parameter enthält den Inhalt=leer
"falls leer dann ist die Option register_globals deaktiviert"


Lösung


In der Datei php.ini muss eine Option aktiviert werden. Also suchen und öffnen Sie diese Datei, um die Option register_globals zu aktivieren.

Verbinden Sie sich per SSH mit Ihrem Server (siehe diese Hilfe Wie kann ich mich per SSH mit meinem Server verbinden?)

[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


Anschließend:

Wenn PHP als ein Modul läuft, dann wird es notwendig sein, Apache neu zu starten, damit die Änderungen übernommen werden :
[root@nsXXXX root]# /etc/init.d/httpd restart

Wenn PHP als eine CGI-Anwendung läuft, ist dies nicht erforderlich.

Sie können das Skript nun erneut testen:

http://nsXXXX.ovh.net/testphp.php?inhalt=esgeht

Jetzt müssten Sie diese Ausgabe erhalten:

Der übergebene Parameter enthält den Inhalt=esgeht
"falls leer dann ist die Option register_globals deaktiviert"