Andreas Korthaus: PHP - Formular - $PHP_SELF und Variablen

Beitrag lesen

Hallo Mark!

die Idee mit Sessions kam mir auch schon, aber ich denke das ist ein Thema mit dem ich mich -> unwissender -> erst einmal intensiver beschäftigen sollte. Das bringt bestimmt noch nichts wenn ich da jetzt bröckchenweise in meine Scripte reinschmeisse.

Sessions sind eine wirklich nützliche Sache in PHP, das slohnt sich sehr soch damit zu beschäftigen. Du solltest Dir mal ein bisschen Zeit nehmen die von mir geposteten Links sorgfältig durchzulesen, dann solltest Du das Session-Konzept von PHP verstanden haben udn hast damit ein neues, nützliches Werkzeug. Dass das ganze wirklich recht einfach ist siehst Du an meinem Beisüpiel unten, und es bietet viel Vorteile gegenüber hidden-fields.

Bedenke auch, dass jemand hidden-fields manipulieren kann. Das mag Dir jetzt bei so "unwichtigen" Saten nicht wichtig erscheinen, aber Du gibst bei Dir die Werte direkt aus, das heißt wenn ich an Stelle dem was Du vorsiehst was anderes an Dein Script schicke kann ich damit böse Dinge machen, auch wenn Du das mit $ausgabe .= änderst! Bei Sessions besteht die Gefahr nicht weil die Daten serverseitig gespeichert werden, und PHP übernimmt das komplett für Dich. Du muss nur die Session starten und bekommst dann einen Array($_SESSION) in dem Du serverseitig Daten temporär ablegen kannst.

und Danke für den Hinweis mit $_SERVER['PHP_SELF']

Entsprechendes gilt übrigens für URL-Parameter und Formularwerte.

Verwende zum Zugriff hierauf ausschließlich noch $_POST, $_GET oder $_REQUEST.
Lies hierzu mal http://de3.php.net/manual/de/language.variables.predefined.php
http://de3.php.net/manual/de/reserved.variables.php
http://www.dclp-faq.de/q/q-formular-register-globals.html

Das solte man unbedingt beachten, denn sonst laufen Deine Script auf einmal nicht mehr wenn der Provider das umstellt, oder Du den Provider wechselt, oder der Provider irgendwann auf eine PHP-Version updatet die register-globals überhaupt nicht mehr unterstzützt...
Außerdem hat das ganze durchaus seinen Grund, wenn Du "register-globals=off hättest bestünde das im anderen Posting beschriebene Risiko mit $ausgabe .=... nicht(!).
Und evtl. hast Du sowas unbewußt schon ananderen Stellen gemacht... es gibt hier auch gefährlichere Varianten wenn es zum Beispiel um Zugriffskontrolle geht...

Viele Grüße
Andreas