dedlfix: MYSQL mysqli_real_escape_string

Beitrag lesen

Tach!

OK, werde htmlspecialchars() nur noch dort verwenden, wo die Variable direkt per echo ausgegeben wird

Das ist mal ein Anfang. Das musst du aber nun auch konsequent immer anwenden, wenn Daten in einen anderen Kontext eingefügt werden. Dazu musst du diese Kontextwechsel erkennen und dann auch wissen, was der jeweilige Zielkontext für Besonderheiten hat und welche Werkzeuge dafür helfen. Alle im Web gängigen Kontextwechsel stehen in unserem Wiki: http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel

Ich werde mich mal in diese prepared Statements weiter einlesen. bisher habe ich den Aufbau noch nicht so ganz verstanden.

Einfach gesagt erstellst du dein Stetement nur noch mit Platzhaltern statt Daten. Die dazugehörigen Daten werden in einem weiteren Schritt übergeben. Dieses Binding ordnet die Daten (oder die Variablen, in denen diese Daten enthalten sind) den jeweiligen Platzhaltern zu. Um weitere Dinge musst du dich nicht kümmern, den ordnungsgemäßen Transport, so dass es nicht zu Missverständnissen zwischen Statement und Daten kommt, übernimmt die in PHP eingebundene MySQL-Client-API.

Wenn ich es schaffe die Dinger zu verwenden, ist eine Verwendung von mysqli_real_escape_string() weiterhin sinnvoll oder ist das durch die prepared Statements dann überflüssig?

Das ist nicht mehr notwendig, weil du keine Daten mit Code vermischst. Somit können nicht mehr bestimmte Zeichen in den Daten als Begrenzungsende interpretiert werden, was es sonst zu verhindern gab. Das sollte klarer werden, wenn du die Einleitung vom Kontextwechselartikel gelesen hast.

dedlfix.