dedlfix: Frage zu Prepared Statement

Beitrag lesen

echo $begrüßung;

Das vorsorgliche Behandeln für irgendeinen Kontext, der später mal zum Tragen kommt ist im Allgemeinen eine schlechte Idee.
Damit meinte ich mysqli_real_escape_string(), wobei ich mich immer noch Frage, warum ich mich vor mir selber schützen muss  :)

Das Behandeln der Daten für das SQL-Statement ist nur für dieses SQL-Statement da, damit einige Zeichen in den Daten von den sie umgebenden Begrenzungszeichen unterschieden werden können. Der Grund der Behandlung ist also nicht hauptsächlich der Schutz vor SQL-Injection. Das ist nur ein Nebeneffekt. Du musst dich insofern vor die selbst schützen, als du mal auf die Idee kommst, 'Malcolm Beck's' einfügen zu wollen. Dann hast du den Salat, wenn du das nicht als 'Malcolm Beck's' übergibst.

Wie ist denn die vorgehensweise, HTML-Code fix und fertig in der DB zu speichern?
Wird das in gängigen CMS so gehandhabt?

"Einfach rein mit dem HTML" ist eine einfache Vorgehensweise. Doch die hat gavierende Nachteile, wenn es darum geht, den Inhalt in einem anderem Format ausgeben zu wollen. Oder einfach mal Inhalt suchen, ohne dass man Code-Teile findet, ist so gut wie unmöglich. Allerdings hast du das letztere Problem auch dann, wenn du Format-Information ablegen willst. Wenn mitten im Fließtext ein Link stehen soll, so sind mindestens irgendwelche Zeichen enthalten, die die Stelle kennzeichnen. Auch wenn man die Meta-Informationen anderweitig ablegt, bleibt was im Text zurück. Man könnte dieses Problem vielleicht so lösen, dass der Text in Reinform abgelegt wird und an anderer Stelle Position, Länge und Art der Formatierung hinterlegt werden. Dann muss man aber beides beim Ausgeben wieder zusammenfummeln.

echo "$verabschiedung $name";