Sven Rautenberg: Gästebuch

Beitrag lesen

Moin!

Also bei mir kommt "Notice: Undefined variable: action in ..."(if ($action == "add"){)", und sonst tut sich garnichts ausser dass beim abschicken mein Formular gelöscht wird. Liegt es vielleich doch an irgend einer Einstellung in php.ini oder an der php Version ?

PHP Version 4.2.2

Sag das doch gleich!

PHP hat seit Version 4.1 einiges an der Art der Variablenübergabemöglichkeit geändert und seit Version 4.2 gewisse Einstellungen neu gesetzt, die bei alten Skripten zu Fehlern führen.

Dein Problem: Du willst direkt auf dir übergebenen Parameter zugreifen, beispielsweise mit $action.

In PHP ist aus Sicherheitsgründen mittlerweile abgeschaltet, dass Parameter und Formulardaten direkt in Variablennamen umgesetzt werden. Deshalb musst du deine Variablennamen umändern.

Alle Daten, die per GET übergeben werden (URL-Parameter oder GET-Formular), stehen im Hash $_GET, alle Daten, die per POST kommen (POST-Formulare) stehen in $_POST, die Cookies stehen in $_COOKIE, hochgeladene Dateiinformationen in $_FILES, die Serverinformationen in $_SERVER, und die Umgebungsvariablen in $_ENV.

Mit anderen Worten: Wenn du ein POST-Formular hast, dann greife auf $_POST zu. Das Feld "Action" heißt $_POST['action'] anstatt $action, und so weiter für alle anderen Variablen. Danach sollte es funktionieren.

- Sven Rautenberg