dedlfix: Wieder ein Kontextproblem

Beitrag lesen

Hi!

Ein Text wird aus einem HTML-Textarea in die Datenbank geschrieben. Da dieser Steuerzeichen enthalten kann, wird die Funktion mysql_real_escape_string verwendet.

Steuerzeichen? Es geht hauptsächlich darum, die Quotierzeichen, also " und ' so umzuschreiben, dass sie nicht als solche erkannt werden.

Zur Überarbeitung wird dieser Text wieder in die Textarea geladen. Um dort besser lesbar dargestellt zu werden, wird die Funktion html_entity_decode verwendet.

Wozu das denn? Wo kommen denn die Entitys her? Wenn sie schon beim Eintragen in das DBMS vorhanden sind, müssten sie bereits dort bereinigt werden, beziehungsweise nach der Ursache für ihr Entstehen geforscht werden. In Zeiten von UTF-8 muss kein Browser mehr auf eine Entity-Fallback-Lösung zurückfallen.

Nun bleiben aber von der vorherigen Maskierung die Zeichen >" übrig und werden bei erneuter Speicherung immer angehängt.

Meinst du \ vor " oder '? Das wäre dann eine Auswirkung von Magic Quotes, die man loswerden sollte.

Muss ich jetzt über Stringbearbeitung immer die letzten 2 Zeichen abschneiden oder liegt der Fehler in html_entity_decode?

Erstmal analysieren, wo die ungewollten Zeichen herkommen, dann kann man auch wissen/sagen, welche Maßnahmen zu ergreifen sind.

Lo!