Sven Rautenberg: Wo is der Fehler?

Beitrag lesen

Ich habe den Fehler gerade gefunden.. im 2. Beispiel muss bei den Ausdrücken wie &deutsch1=".rawurlencode($_GET['deutsch1'])." das deutsch1 in ''. Warum auch immer, so funktioniert es.

Das ist kein "Wunder", sondern zwingend so vorgeschrieben (du solltest die anderen Vorkommen auch ändern).

Grund: Der Array-Index ist entweder eine Zahl (Zahlen werden in PHP ohne umgebende Zeichen geschrieben):
$array[3]

Oder er ist ein String. Strings werden mit Anführungszeichen geschrieben:
$array['index']

Die Index-Angabe kann auch in einer Variablen selbst liegen:
$index = 2;
$array[$index] -> Zahlzugriff

$stringindex = "index";
$array[$stringindex] -> Stringzugriff

PHP kann auch Konstanten definieren. Die soll man normalerweise GROSSSCHREIBEN, aber zwingend ist das nicht.
define ("index", "irgendwas")
echo index; -> gibt "irgendwas" aus
$array[index] -> Zugriff auf $array['irgendwas']

Wenn du also auf $_GET[deutsch1] zugreifst, und keine Konstante "deutsch1" definiert ist, läuft das schief. Warum es trotzdem mal funktioniert, weiß ich nicht - scheint reine Glückssache zu sein. Oder du hast noch nicht gemerkt, dass es auch nicht funktioniert.

- Sven Rautenberg