HTML-Code in DB speichern --> htmlentities
am 24.09.2005 20:07:50 von Christian Steffens
Morgen,
ich habe hier ein kleines "CMS" welches den HTML-Code der
einzelnen Seiten in einer Datenbank bzw. Tabelle speichert.
Der HTML-Code wird per Online-WYSIWYG-Editor (htmlarea)
in einem HTML-Formular editiert - dann abgeschickt und (bisher)
direkt in die Datenbank eingefügt.
Jetzt merke ich gerade, dass es Probleme gibt, sobald der HTML-Code
Sonderzeichen enthält (französisch, spanisch usw.) - OK, daher
'säubere' ich den Code vor dem Speichern in die Tabelle per htmlentities().
Und beim Anzeigen der Seiten bzw. Auslesen des Codes nutze ich dann
html_entity_decode(). Funktioniert jetzt auch wunderbar, Sonderzeichen
und ähnliches werden verarbeitet.
Nur Frage ich mich jetzt, ob das so auch die beste Lösung ist.
Versteht mich nicht falsch - die Sache läuft ja wunderbar. Nur habe
ich irgendwie "ein komisches Gefühl" dabei - die Lösung scheint mir fast
zu einfach, ist das nirgendwo ein Hacken oder ein Problem was auftreten
könnte?
Wäre top, wenn mir jemand die Gewissheit geben könnte, das es "so
richtig ist". Es stellt sich zum Beispiel die Frage ob es
htmlspecialchars() nicht auch tun würde?
Danke vielmals
Christian
Re: HTML-Code in DB speichern --> htmlentities
am 24.09.2005 23:47:24 von Niels Braczek
Christian Steffens schrieb:
> Jetzt merke ich gerade, dass es Probleme gibt, sobald der HTML-Code
> Sonderzeichen enthält (französisch, spanisch usw.) - OK, daher
> 'säubere' ich den Code vor dem Speichern in die Tabelle per htmlentities().
>
> Und beim Anzeigen der Seiten bzw. Auslesen des Codes nutze ich dann
> html_entity_decode(). Funktioniert jetzt auch wunderbar, Sonderzeichen
> und ähnliches werden verarbeitet.
Die übliche[tm] Lösung ist noch einfacher: Man verwendet die passende
Zeichenkodierung sowohl im Formular als auch im DBMS.
Allerdings halte ich deine Lösung auch für geeignet.
> Nur Frage ich mich jetzt, ob das so auch die beste Lösung ist.
> Versteht mich nicht falsch - die Sache läuft ja wunderbar. Nur habe
> ich irgendwie "ein komisches Gefühl" dabei - die Lösung scheint mir fast
> zu einfach, ist das nirgendwo ein Hacken oder ein Problem was auftreten
> könnte?
>
> Wäre top, wenn mir jemand die Gewissheit geben könnte, das es "so
> richtig ist". Es stellt sich zum Beispiel die Frage ob es
> htmlspecialchars() nicht auch tun würde?
htmlspecialchars() reicht sicherlich nicht aus, weil die akzentuierten
Zeichen davon nicht berührt werden.
MfG
Niels
--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
`----------------------------------------------------------- -----´