dedlfix: Globale Variablen sind nicht vorhanden

Beitrag lesen

Tach!

Ein Formular übermittelt den Wert $_POST['Position'], der fünf verschiedene Stringwerte haben kann ("Pedal", "Unteres Manual", "Oberes Manual", "3. Manual", "4. Manual"); entsprechend dem Stringinhalt soll ein Integerwert von 0 bis 4 in die Datenbank eingetragen werden.

Warum kommt da ein Text im Programm an und nicht gleich die Zahl?

Da die Variablen für die Datenbank in mehreren Funktionen verwendet werden sollen (und ich nicht jedesmal $_POST['soundso'] schreiben will, habe ich globale Variablen definiert:

Globale Variablen definiert man, indem man sie im globalen Scope anlegt. Befindet man sich in einer Funktion muss man mit global definieren, welche Variable aus dem globalen Scope man ansprechen möchte.

Die Zuweisung von $Position sieht so aus:

     if ($_POST['Position'] == "Pedal")
        $Position = 0;
      else if ($_POST['Position'] == "Unteres Manual")
        $Position = 1;
      else if ($_POST['Position'] == "Oberes Manual")
        $Position = 2;
      else if ($_POST['Position'] == "3. Manual")
        $Position = 3;
      else 
        $Position = 4;

Es gäbe da auch switch. Ich dachte, du wolltest das Mehrfachverwenden vermeiden?

Wenn ich dann vor dem Eintrag in die Datenbank noch einmal $_POST und $Position prüfe, wird mir $_POST korrekt angezeigt: in $Position steht aber immer nur NULL! Warum?

Das kann man aus dem gezeigten Code nicht entnehmen. Vermutlich hast du die globalen Variablen nicht in den vorliegenden Scope reingeholt.

dedlfix.