Hallo
Und wo hast du hier die Variable $ID definiert und mit einem Wert belegt?
kannst Du mir bitte auf die Sprünge helfen!?
Ganz einfach, $ID existiert nicht, womit der Query mit seinem Where-Teil ins Leere läuft. Der Query sieht somit folgendermaßen aus: "SELECT * FROM FW_Fehlerbericht WHERE ID =
", was ein Syntaxfehler ist.
Wie Chris schon andeutete, werden in PHP die an ein Skript übergebenen Werte, je nach Übergabeart, in nach diesen Arten benannten, superglobalen Arrays zur Verfügung gestellt. Das sind $_GET
, $_POST
, $COOKIE
, $_SESSION
und $_FILE
(falls ich etwas vergessen habe, bitte ich, es zu ergänzen). In deinem Fall würde dir $_GET["ID"]
die Werte des Linkparameters ID liefern. Mit der zusätzlichen Verwendung der PHP-Funktion mysql_real_escape_string maskierst du auch etwaige falsche oder böse Werte. Eine vorherige Prüfung, ob der Wert von $_GET["ID"]
in das passende Schema passt (hier eine Ganzzahl/Integer), darf ebenfalls nicht fehlen.
Ergebnis:
$query = "[code lang=sql]SELECT * FROM FW_Fehlerbericht WHERE ID =
".mysql_real_escape_string($_GET["ID"]);[/code]
Ausserdem informiere dich über das Stichwort SQL Injection.
...ist Hausintern, nichts öffentliches!
... ist unerheblich, aus grundsätzlichen Gründen!
Einerseits ist ein nicht vorhandenes Sicherheitsloch eben nicht vorhanden und andererseits weißt du *jetzt* nicht, wozu der Code *zukünftig* weiter- oder wiederverwendet wird. *Dann* könnte eine jetzt nicht beseitigte und dann übersehene Lücke unangenehme Folgen haben.
Tschö, Auge
Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
Terry Pratchett, "Wachen! Wachen!"
Veranstaltungsdatenbank Vdb 0.3