Mastershrimp: Selbstgebautes htmlentities() scheitert an Sonderzeichen + UTF-8

Beitrag lesen

Heyho!

Super, gleich noch mehr Antworten :) Danke!

Also ihr seid euch in einem einig: htmlentities() ist unnötig wenn man UTF-8 einsetzt. Das wusste ich noch gar nicht. Wie in der Antwort auf das Posting von Dennis gesagt, ging ich fälschlicherweise davon aus, dass "man das halt so macht" ;-)

Ok, damit ich sicher bin, dass ich alles richtig verstanden habe, bitte folgende Statements einmal absegnen:

[Exkurs, nur damit ihr wisst wie ich die Funktionen atm einsetze: Wird ein Formularfeld von PHP vorbelegt (à la <input type="text" name="feldname" value="$value" />), durchläuft $value momentan htmlentities() mit dem UTF-8-Parameter. In der Datenbank wird der eingegebene Inhalt plain als UTF-8 gespeichert. Also ohne Maskierungen. Die Ausgabeverarbeitung hängt davon ab, ob HTML gewollt ist (-> Quelle: TinyMCE) oder nicht (normales Texteingabefeld). In ersterem Fall wird bisher meine Spezialmethode "htmlentitiesHTML()" benutzt (s.o.), in letzterem das normale htmlentities() mit dem UTF-8-Parameter. Ausgegebene Inhalte sollen als Quellcode interpretiert werden, da das ganze für ein CMS ist. Exkurs Ende]

  1. Es macht in oben beschriebenem Szenario nirgendwo Sinn, htmlentities() einzusetzen, da ich alles in UTF-8 vorliegen habe.

  2. Ich sollte jedes htmlentities() durch htmlspecialchars() ersetzen (Da nur für das Befüllen von Formularfeldern gebraucht bzw für die Ausgabe von Inhalt, der definitiv kein HTML enthalten darf/wird)

  3. Ich sollte meine Spezialfunktion "htmlentitiesHTML()" dahingehend reduzieren, dass nur die ungewollten Tags per strip_tags() eliminiert werden. Maskierungen per htmlentities() oder htmlspecialchars() machen keinen Sinn, da Inhalt als HTML interpretierbar bleiben soll.

Vielen Dank euch allen schonmal bis hierhin und viele Grüße

Mastershrimp