Hallo zusammen,
habe gerade ein blödes Problem festgestellt. Meine Seite nutzt den Charset UTF-8. Da ich z.B. bei einem Titel, der vom User eingegeben wird, kein HTML erlauben möchte, wandle ich mit PHP und htmlentities alle Zeichen um, um sie dann in der DB zu speichern. Bei einem Feld von varchar(120) sind das bei "ö" 6 Zeichen, im input-Feld das mit maxlength="120" festgesetzt ist, allerdings nur 1 Zeichen.
Wenn also jemand einen Titel von kompletten 120 Zeichen mit Umlauten eingibt, wird ab einem bestimmten Zeichen der Titel nicht gespeichert, weil er durch htmlentities länger geworden ist.
Wie kann ich das umgehen?
strip_tags bringt mir nicht viel, da die Funktion sowas wie < oder > entfernt, wenn danach ein Buchstabe kommt, der allerdings überhaupt nix mit HTML zutun hat. Wenn ich jedoch mit htmlspecialchars < oder > umwandle, dann hab ich ja wieder mehr Zeichen als unter Umständen die 120.
Ich hoffe Ihr versteht was ich meine.
Wie macht würdet Ihr das Problem lösen? Einfach mehr Zeichen in der Tabelle zum Speichern angeben, die Beschränkung im input-Feld trotzdem auf 120 lassen? Oder irgendeine Kombination aus den oben genannten Funktionen, die mir bisher nicht bekannt ist?
Sonnige Grüße,
Marvin
habe gerade ein blödes Problem festgestellt. Meine Seite nutzt den Charset UTF-8. Da ich z.B. bei einem Titel, der vom User eingegeben wird, kein HTML erlauben möchte, wandle ich mit PHP und htmlentities alle Zeichen um, um sie dann in der DB zu speichern. Bei einem Feld von varchar(120) sind das bei "ö" 6 Zeichen, im input-Feld das mit maxlength="120" festgesetzt ist, allerdings nur 1 Zeichen.
Wenn also jemand einen Titel von kompletten 120 Zeichen mit Umlauten eingibt, wird ab einem bestimmten Zeichen der Titel nicht gespeichert, weil er durch htmlentities länger geworden ist.
Wie kann ich das umgehen?
strip_tags bringt mir nicht viel, da die Funktion sowas wie < oder > entfernt, wenn danach ein Buchstabe kommt, der allerdings überhaupt nix mit HTML zutun hat. Wenn ich jedoch mit htmlspecialchars < oder > umwandle, dann hab ich ja wieder mehr Zeichen als unter Umständen die 120.
Ich hoffe Ihr versteht was ich meine.
Wie macht würdet Ihr das Problem lösen? Einfach mehr Zeichen in der Tabelle zum Speichern angeben, die Beschränkung im input-Feld trotzdem auf 120 lassen? Oder irgendeine Kombination aus den oben genannten Funktionen, die mir bisher nicht bekannt ist?
Sonnige Grüße,
Marvin
Kommentar