Undefinierter Index trotz isset?

ojamaney

Erfahrenes Mitglied
Moin,

warum bekomme ich bei:
PHP:
if (!isset($_SESSION["ID"])) { $_SESSION["ID"] = $_REQUEST["id"]; }

die Undefined Index Fehlermeldung?
Ich dachte dass ich genau das mit isset vermeide.

Der Fehler tritt nur auf dem lokalen Webserver auf. Im Inet ist er nicht zu sehen weil dort wohl derartige Fehlermeldungen deaktiviert sind.

Wer weiss was? Ö_Ö
 
Hi,

es könnte auch sein, dass $_REQUEST nicht definiert ist, du prüfst ja nur auf $_SESSION. Könnte sein dass $_REQUEST global deaktiviert ist, nutze hierfür besser $_GET oder $_POST.

Grüsse,
BK
 
Verstehe ich nicht. Request ist doch nur Platzhalter für eine ID die ich per Link-Aufruf empfange.
Hier werden ja keine Formulardaten angenommen, sonder einfach nur eine Kennung die am Link mit php?id=xxx hängt.
Das heisst nach meiner Meinung, Request muss einmal leer sein. Das sollte auch Frl. php wissen^^

Aber Du hast recht. Wenn ich Request vorher mit isset prüfe ist die Fehlermeldung weg.
Hätte ich auch selber drauf kommen können. Zu meiner Entschuldigung: vor ein paar Jahren funktionierte der Code noch fehlerlos^^

Ich danke Dir!
 
Hi,

$_REQUEST kann über die Serverkonfiguration abgeschaltet werden. Ausserdem hier noch ein paar Worte, warum $_REQUEST eher nicht verwendet werden soll.

Grüsse,
BK
 
Also kann ich $_REQUEST einfach gegen $_GET austauschen ohne dass es einen Unterschied macht?
Warum gibt es denn $_REQUEST wenn diese Variable so unsicher ist und durch sicherere einfach zu ersetzen ist?
 
Hi,

aus der selben Quelle wie mein Link oben:

The more stuff like this we remove, the harder it becomes for people to quickly move to newer, faster and more secure versions of PHP. That causes way more frustration for everyone than a few "ugly" legacy features.

Übersetzt:
Je mehr Sachen wir entfernen, desto schwieriger wird es für die Leute, schnell auf neue, schnellere und sicherere PHP-Versionen umzusteigen. Das verursacht weit mehr Frustration für jedermann als ein paar "hässliche" Legacy-Features.

Wurde einmal eingebaut und "muss" jetzt drinnen bleiben weil es so viele verwenden.

Grüsse,
BK
 
Zurück