Wow, das nenn ich doch mal eine Analyse. Vielen Dank (auf was hab ich mich da eingelassen :-))
buchstabe (zur Selektion nach Anfangsbuchstabe)
Dieses Feld ist im Grunde genommen überflüssig, da sich dessen Inhalt beim Abfragen leicht ermitteln lässt. ... Mein Vorschlag: Nutze von den MySQL-Stringfunktionen SUBSTRING()/SUBSTR().
Ich hatte es mal mit substr() probiert, aber dabei wurde mir von der DB kein Wert ausgegeben. Das ganze sollte doch so aussehen: $query = "SELECT begriff, url FROM lexikon WHERE substr('begriff',0,1) = '$buchstb'";
(oder nur mal zum Testen " ... substr('begriff',0,1) = 'A'"
).
Was ist da schon wieder falsch?
wort (entspricht im Grunde dem Feld "Begriff" ..
... In dem Fall bietet sich an, eine URL-Kodierung zu verwenden.
Alles klar, werd ich mich mal informieren.
Mein Vorschlag: ... Die MySQL-Maskierung übernimmt mysql_real_escape_string() und zwar erst dann, wenn der SQL-Befehl zusammengebaut wird oder unmittelbar davor.
Leider fand ich zig verschiedene Seiten, die Beispiele zur Sicherheit anbieten; war ja schon froh, dass ich dann eine - so dachte ich - gute Lösung gefunden hätte. Auf der einen Seite heißt es htmlspecialchars(); hilft auf einer anderen strip_tags(); ...
Deiner Meinung nach, sollte das hier ja dann helfen, z.B. Bsp. #3 ?
Das die() wird nie aufgerufen werden, da die Zuweisung in diesem Fall stets true ergibt. Und es gehört dort auch gar nicht hin, sondern, wenn überhaupt, hinter die mysql_*-Funktionen.
Das war in der Tat falsch, und sollte da auch gar nicht mehr (und auch sonst nirgends) stehen
Positiv hervorzuheben ist, dass du dein Script kommentierst. Achte dabei darauf, den Sinn der Codestelle zu kommentieren, nicht nur was sie macht. Letzteres sollte sich aus dem Code ergeben.
Danke für den Tipp, wobei die Kommentare hier nur dazu dienen sollten den Lesern im Forum kurz zu sagen worum es hier geht; für mich selbst werd ich die dann noch wie von dir vorgeschlagen ausweiten.
Ebenfalls lobend erwähnenswert ist, dass du dich bemühst, deinen Code ordentlich zu formatieren, auch wenn dir das an einigen Stellen nicht gelungen ist. Aber vielleicht war das auch nur ein Copy'n'Paste-Fehler.
Tabs werden wohl verschluckt :-)
Die ganzen restlichen Vorschläge muss ich mir nochmal gesondert anschauen wenn das Script mal bis hierhin läuft. Sonst wird mir das alles zu viel ;-)