de.comp.lang.php.* FAQ

11.20. Warum funktionieren meine Formulare nicht?

Antwort von Richard Körber

Die Symptome sind meist, dass die Seiten auf dem Webserver des Hosts tadellos funktionieren, aber bei dem nagelneu aufgesetzten Testserver die Formulareingaben einfach nicht mehr ankommen. Oft stolpern auch Neulinge darüber, wenn die Beispiele aus dem Lehrbuch nicht auf dem eigenen Testserver funktionieren.

Seit PHP 4.2.0 wurde register_globals in der php.ini per Default abgeschaltet. Die Option war dafür zuständig, dass ein Parameter an das Script automatisch in eine entsprechend genannte Variable kopiert wurde. Ein Angreifer hat damit jedoch die Möglichkeit, Variablen, die der Programmierer versehentlich uninitialisiert ließ, mit beliebigen Werten vorzubelegen.

Es gibt zwei Möglichkeiten, dieses Problem in den Griff zu kriegen.

Die gute Wahl ist, die PHP-Scripte entsprechend anzupassen. Das ist reine Fleißarbeit. Siehe auch Verwendung von Register Globals .

Die schlechte Wahl ist, register_globals wieder zu aktivieren. Da der Webauftritt damit wieder angreifbar ist, sollte man es höchstens als Notlösung betrachten, um den Webauftritt vorübergehend wieder online zu kriegen, bis man die Scripte umgestellt hat. Wenn man keine Rechte hat, um register_globals zu aktivieren, hilft die Funktion import_request_variables() weiter.

Valid HTML 4.01! Valid CSS!

11.20. Warum funktionieren meine Formulare nicht?
http://www.php-faq.de/q/q-formular-register-globals.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team