if (isset($_GET['id']) && ($_GET['id'] != ''))
$id = $_GET['id'];
hab noch ein wenig probiert - hier muss ein Problem sein - es wird 'RCalendar1' ausgegeben
Wo genau, welche Variable, mit welchem Code?
-
Wenn in $_GET["id"] 'RCalendar1' steht, dann würdest du jetzt schon mal wissen, dass das Problem nicht $_GET selber ist, sondern noch weiter vorne liegen muss. Dort, wo die URL bzw. die URL-Parameter zusammengebastelt werden, wird eine URL à la "bla.php?id=RCalendar1" erzeugt.
-
Falls du hingegen $id nach dem if-Block ausgegeben hast, dann besteht immer noch die Möglichkeit, dass der falsche Wert aus $_SESSION komt.
Nur nebenbei: Wenn ich ein ganz böser Mensch wäre, würde ich in der Adressleiste meines Browsers '…?id=0 or true' eintippen und darauf spekulieren, dass du (wie ja tatsächlich oben zu sehen) den Parameter id ungefiltert und ungesichert in deinen SQL-Befehl einfügst: 'SELECT * FROM travelplan WHERE UserId = 0 or true'. Und nun lasse dir mal durch den Kopf gehen, was da passiert …
ich hab keine Idee was passiert - bin aber auch kein Profi
Dein SQL-Befehl endet dann folgendermaßen: 'where id=0 or true'. Die Bedingung 'id=0 or true' ist wegen es 'or true' immer erfüllt, damit wird auch der vorangehende Befehl _sämtliche_ Daten betreffen, nicht nur die für id=0 zutreffenden.
Ist id zum Beispiel die Nutzernummer, lassen sich mit '?id=0 or true' auch die Daten aller anderen Nutzer ausgeben.