detlevk: Wieder ein Kontextproblem

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

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

Nun bleiben aber von der vorherigen Maskierung die Zeichen >" übrig und werden bei erneuter Speicherung immer angehängt.
Muss ich jetzt über Stringbearbeitung immer die letzten 2 Zeichen abschneiden oder liegt der Fehler in html_entity_decode?

  1. 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.

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

    Das ist vollkommener Blödsinn.

    htmlspecialchars ist die Funktion, die du bei der Ausgabe von Daten im Kontext HTML anwenden willst.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  2. 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!

  3. Hat sich erledigt! Es war ein dämlicher Tippfehler, wie er sich schnell ergibt, wenn man zwischen HTML und PHP hin und her wechselt.