Sven Rautenberg: tiefergestellte Zeichen in HTML

Beitrag lesen

Moin!

Mittels php wird in einem Feld ein Text eingegeben, in einer Datenbank gespeichert und bei Abruf als HTML angezeigt.

Nun musste ich bei Eingabe der Zeichen < und > diese in &lg usw. umwandeln, da sie sonst zur verunstaltung des Eintrags in HTML-Darstellung führten.

Aus diesem Grund kann ich den <sub>-Befehl auch nicht anwenden. Hat vieleicht jemand eine Idee wie ich trotzdem tiefergestellte Zeichen darstellen könnte?

Es gibt eigentlich nur drei Möglichkeiten, in der Welt von Text, HTML-Quelltext und Userinput zu arbeiten:

1. Möglichkeit: Die Textarea enthält "plain text", d.h. die eingegebenen Zeichen <, > und & werden bei der Ausgabe in einer HTML-Seite immer durch Entities ersetzt. Das bedeutet, dass man keinerlei aktiven HTML-Code eingeben kann, alles wird immer zu dargestelltem Text.

2. Möglichkeit: Die Textarea enthält HTML-Quellcode, d.h. die eingegebenen Zeichen <, > und & werden NICHT durch Entities ersetzt. Das bedeutet, dass der Benutzer beliebigen HTML-, CSS- und Javascriptcode eingeben kann, und wenn er die Darstellung z.B. des Zeichens < wünscht, muß er die Entity &lt; verwenden.

3. Möglichkeit: Die Textarea enthält "plain text" plus formatierende Sonderzeichen bzw. Textstrings - der Klassiker wäre BB-Code. Damit erreicht man die Vorteile der Möglichkeit 1 (kein beliebiger, einschleusbarer HTML- und Programmcode), erlaubt dem Benutzer aber eine definierte Auswahl an Formatierungen, die vom verarbeitenden System gesondert behandelt werden. Solche Strings mit Sonderbedeutung erfordern entweder, dass diese Strings nicht mehr als normaler Text eingebbar und darstellbar sind (man sollte dann also Strings verwenden, die nicht in normalen Texten vorkommen), oder man muß die Strings escapen können.

Methode 3 würde darauf hinauslaufen, dass du entweder echten BBCode benutzt und z.B. "[sub]tiefgestellt[/sub]" eingegeben wird, um tiefgestellten Text zu erreichen, welcher dann in HTML umgesetzt wird, oder du erlaubst direkt die Eingabe von "<sub>" und "</sub>", welche dann ausnahmsweise nicht in "&lt;sub&gt;" und "&lt/sub&gt;" umgewandelt werden - in beiden Fällen wäre es dann nicht mehr möglich, die jeweiligen Zeichenketten selbst im Text zu verwenden. Ein erklärender Text zum HTML-Tag <sub>, der das Tag sowohl erwähnt, als auch in der praktischen Anwendung zeigt, würde also nicht so einfach funktionieren.

- Sven Rautenberg

--
My sssignature, my preciousssss!