dedlfix: UTF8 - Sonderzeichenformatierung

Beitrag lesen

Hi!

Verstümmelst du deine Eingabedaten etwa gleich am Scriptanfang mit htmlentities()? Wenn ja, wozu?
Wie ich hier im Forum gelernt habe, traut man keiner Nutzereingabe, und um mich vor XSS zu schützten nutze ich htmlentities.
Ohne wäre der Buchsatabe "c39c"

Eine Benutzereingabe ist etwas anders als eine Ausgabe. Dazwischen musst du mit unverfälschten Rohdaten arbeiten, sonst geht mehr schief als du zu kitten versuchst. htmlentities() ist eine Funktion, um für den Kontext HTML Daten aufzubereiten (wobei htmlspecialchars() die bessere Lösung ist). Du willst aber erst einmal Daten verarbeiten und sie in Richtung MySQL weitergeben. Dass sie irgendwann später in eine HTML-Seite eingefügt werden sollen, interessiert an der Stelle noch nicht. Es ist ja noch nicht einmal gesagt, dass sie überhaupt / immer in Richtung HTML ausgegeben werden. Vorauseilende Vorbereitung wirft stets mehr Probleme auf, als damit beseitigt werden sollen. Mitunter fallen die diese Probleme nur nicht sofort auf. Siehe dazu zum Beispiel HTML in der Datenbank (und am besten auch den Rest des Artikels).

Lo!