Hallo,
Nicht nur die, sondern ALLE Ausgaben. Auch die, die aus anderen Quellen kommen. Denn wie Matthias gezeigt hat, genügt es ja schon, wenn in der Ausgabe ein unmaskiertes '<' auftritt - schon ist der HTML-Parser des Browsers aufs Glatteis geführt und die Ausgabe ist insgesamt Schrott.
hab noch eine Frage, du schreibst ALLE Ausgaben. Das heißt also auch in Formularen wie z.B. hier?
value="<?=(isset($_POST['betreff'])) ? $_POST['betreff'] :''?>">
Wie sieht es aus wenn ich eine eMail verschicke. Muss ich das htmlspecialchars auf die Felder anwenden die ich verschicke oder regelt dieses mein Mail Programm für mich?