Der Martin: htmlspecialchars

Beitrag lesen

Hi,

hier im Forum lese ich immer wieder, vor jede Ausgabe sollte / muss htmlspecialchars geschrieben werden.

im Prinzip ja, aber es gibt Ausnahmen. ;-)

Soweit so gut. Was ist aber in folgendem Fall:

 if ($object->ArtikelStatus == 3) {
        $StatusInfo= str_replace ("3", "<span class=\"neu\">Artikel wurde noch nicht vollständig ins System übernommen!</span>", $object->ArtikelStatus);
  }

Die Ausgabe im Dokument

<?php echo htmlspecialchars($StatusInfo); ?>

Als Ausgabe erhalte ich den ganzen HTML Krempel, also nicht dieses was ich möchte. Sollte ich in diesem Fall auf htmlspecialchars verzichten, oder kann man htmlspecialchars auch Ausnahmen hinzufügen?

In diesem Fall willst du ja gerade HTML-Code ausgeben, der Zweck von htmlspecialchars() ist aber doch, Ausgaben so zu maskieren, dass sie nicht als HTML interpretiert werden, sondern als Klartext.

Ich vermute aber, dass man deine Struktur und Programmlogik besser, "sauberer" realisieren könnte, so dass diese Ambiguität gar nicht erst entsteht. Dass kann ich aber ohne Kenntnis der Gesamtstruktur nicht mit Sicherheit sagen.

So long,
 Martin