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"