Auge: Htmlspecialchars

Beitrag lesen

Hallo

mein Code sieht so aus :)

<?php echo nl2br($ausgabe['inhalt']); ?>

Vor hatte ich noch die htmlspecialchars drin

<?php echo nl2br(htmlspecialchars($ausgabe['inhalt'])); ?>

In meiner Datenbank steht es so:

<strong>Hallo Test</strong>

*Das* ist der Fehler.

Nehme ich den Code ohne htmlspecialchars wird es richtig ausgeführt, nehme ich den Code mit htmlspecialchars wird mein <strong> als Text ausgegeben.

Logisch. Die Funktion tut, wie ihr gehießen. Sie maskiert, wenn vorhanden, „<“ und „>“. Dein Problem ist, dass du deinen Text an einer ungünstigen Stelle mit den *ausschließlich für die HTML-Ausgabe* nötigen Elementen versiehst.

Würdest du den Text in der Datenbank z.B. mit BB-Code oder Markdown lagern und ihn erst bei der Ausgabe mit den im Zielsystem (hier HTML) nötigen Formatierungen versehen, könntest du auch erst etwaige unerwünschte HTML-Elemente abfangen (htmlspecialchars) und dann die gewünschten Elemente einfügen. Das wäre eine Umwandlung der „Lagerungssyntax“ (z.B. eben BB-Code) in HTML oder was auch immer im Zielsystem richtig ist. Der Text könnte ja auch woanders ausgegeben werden.

Tschö, Auge

--
Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
Terry Pratchett, "Wachen! Wachen!"
ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
Veranstaltungsdatenbank Vdb 0.3