URL-Variablen auslesen nach PHP-Upgrade -->Problem

Black-Hunter

Grünschnabel
Hi!
Habe PHP 4.05 auf 4.39 upgegradet. Nun kann ich URL-Variablen nicht mehr auslesen.
Die Seite wird gestartet mit index.php?l=Sprache, wobei Sprache = 1 oder 2 sein kann.
Die $_GET-methode sollte hierbei doch funktionieren, oder? ($_POST und $_REQEST geht übrigens auch nicht). Hat sich irgendwas an der isset-Funktion verändert?

if (isset($l)){
$l = $_GET['l']; // Wenn Sprache gesetzt ist --> übernehmen
} else { // Ansonsten deutsche Version anzeigen
$l = "1";
} // END ELSE
echo "$l";

Ergebnis: Variable wird nicht ausgelesen, sondern immer der else-Befehl ausgeführt. Auch bei Aufruf mit index.php?l=2 wird der else-Block aufgerufen und l=1 gesetzt.
Wäre nett, wenn mir jemand helfen könnte.

Thanks und Gruß
Christoph
 
Kann es sein, dass ab einer bestimmten PHP-Version eine Variable, welche "nur" in der URL steht, aber noch nicht explizit ausgelesen bzw. zugewiesen wurde noch nicht als gesetzt (im Sinne von isset() ) gilt?

Vorher wurde die Variable direkt aus der URL ausgelesen (direkter Zugriff im Quellcode durch $l). Nun mit der neuen PHP-Version geht dies ja nur noch über $_get('l'). Die Variable scheint nicht als gesetzt zu gelten, bevor ich sie mit diesem Befehl zugewiesen habe $l = $_get('l')
Heißt: Sobald ich diese Zeile davor setze funktioniert es.

Aber: Ich will ja mit dem isset eben bezwecken, dass die Variable nur ausgelesen wird, wenn sie in der URL eingebunden ist. Das muss ja nicht immer der Fall sein (sonst bräuchte ich ja auch kein else). Seltsamerweise bekomme ich aber auch keine Fehlermeldung, wenn ich ins Blaue schieße und mit get die Variable hole obwohl sie in der URL nicht gesetzt wurde. Warum erzeugt das keinen Fehler?

Gruß
Christoph
 
Zurück