mermshaus
Senior HTML'ler
ist es nicht doch irgendwie sinnvoller htmlentitiers() / htmlspeacialchars() vor dem Einfügen in die Tabelle einzusetzen. Sonst müssten die Funktionen bei zB einem Forum beim Auslesen nocheinmal angewandt werden, was eine längere Ladezeit zur Folge hat. D.h. nicht lieber einmal die Funktion nutzen anstatt bei jedem Seitenaufruf?
In Anbetracht dessen finde ich den Vorschlag von Loon3y garnicht so schlecht, da man ja nur eine Tabelle von den beiden nutzen muss, und bei dieser die Funktion dann bereits zum Einsatz kam. Auf der anderen Seite hat man volle Variabilität durch die Originaleingaben der anderen Tabelle.
Das wäre eine Form von Caching, also Zwischenspeichern einer bereits generierten Ausgabe. Das könnte man -- unabhängig vom Threadthema -- auch immer andenken. Ich würde hier wenn die Cache-Daten in eine andere Tabelle setzen (oder im Dateisystem ablegen), um eine sauberere Trennung zwischen "echter" Datenhaltung und Cache-Funktionalität zu erreichen. Recyclter Post:
Ich hänge dem Paradigma an, konsequent Originaldaten zu speichern, um flexibel jede Art von Ausgabe erzeugen zu können, die die Daten zulassen. Wenn du beispielsweise vor dem Eintragen in die Datenbank bereits ein htmlspecialchars über die Daten bügelst, dann aber später feststellst, dass du doch ganz gerne noch weitere Entities ersetzt hättest, weil du die Daten als ISO-8859-1 ausgeben willst, stehst du vor dem Problem, dass dir das htmlspecialchars aus "<" bereits "<" gemacht hat und ein weiteres htmlentities daraus ohne vorherige Rückumformung erstmal ein "&lt;" machen würde.
Mir fällt spontan kein überzeugendes Beispiel ein, aber man kann zu sehr unschönen Lösungen gezwungen sein, wenn man die Originaldaten in etwas weiterverarbeitet hat, das doch nicht so optimal war, wie man anfangs dachte.
Nimm vielleicht einen BBCode-Parser. Die laufen [üblicherweise] auch erst vor der Ausgabe, nicht nach der Eingabe, um nachträglich Änderungen am Parser vornehmen zu können und um nachträglich den Code bearbeiten zu können.
Mir fällt spontan kein überzeugendes Beispiel ein, aber man kann zu sehr unschönen Lösungen gezwungen sein, wenn man die Originaldaten in etwas weiterverarbeitet hat, das doch nicht so optimal war, wie man anfangs dachte.
Nimm vielleicht einen BBCode-Parser. Die laufen [üblicherweise] auch erst vor der Ausgabe, nicht nach der Eingabe, um nachträglich Änderungen am Parser vornehmen zu können und um nachträglich den Code bearbeiten zu können.
Vielleicht wäre ein Argument speziell gegen htmlentities, dass ein "Märchen => Märchen" von der Datenbank nicht mehr in einer Textsuche zu finden ist.