Umlaute im Kontaktformular #122
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Im Otobo sind die Umlaute von Nachrichten, die über das Kontaktformular geschickt werden kaputt. Das äußert sich in Mail z.B. wie folgt:
Es kommen Umlaute also als HTML-Entities an, also
ü
für ü, aber das & wird an dieser Stelle ebenso durch&
ersetzt, wodurchü
dann im Mailtext landet.Beteiligte sind an dieser Stelle, der Browser, der den Text via JS und JSON an PHP übergibt, PHP und seine mail-Funktion, der Mailserver und schließlich Otobo. An welcher Stelle in der Kette man sinnvoll eingreifen sollten erschließt sich mir aktuell noch nicht.
Ich bin aktuell schon ein bisschen weiter:
Das hat auf den resten Blick nichts gebracht, aber in der letzten Testmail wird das angehängte 'ä' korrekt dargestellt.
Somit sollte sich im nächsten Schritte drauf konzentriert werden, was in den Variablen $subject und $message in welchem Encoding ankommt und ob man entweder in JS, oder in PHP den Inhalt nochmal umrödeln muss.
Umlaute, meine Fresse … 2022 … es bleibt schwierig. Schade.
Die HTML-Entities entstehen in der Funktion
sanitize_text()
im PHP.filter_var()
mitFILTER_SANITIZE_FULL_SPECIAL_CHARS
wandelt auch die Umlaute um, nicht nur<
,>
usw. (In der Doku steht das nicht so explizit drin, aber mitphp -a
kann man das schnell testen.) Das nachgelagertehtmlspecialchars()
macht aus den Ampersands dann noch&
s.FILTER_SANITIZE_SPECIAL_CHARS
(ohneFULL
) müsste als Filter ausreichen, undhtmlspecialchars()
kann weggelassen werden, da das schon im Filter drin ist.Danke für den Hinweis. Habe ich jetzt gefixt. Den (aus meiner Sicht) sinnvollen Teil aus meinen ersten Ansätzen habe ich zusätzlich übernommen.
Außerdem bin ich über den Filter für E-Mailadressen
FILTER_SANITZIE_EMAIL
gestolpert und hab ich noch eingebaut und ich sorge jetzt dafür, dass wirklich nur\r\n
als Zeilenumbruch in der Mail landet.Das sah beim Test jetzt soweit gut aus.
Werde den Branch zu diesem Ticket dann in den fürs Kontaktformular mergen, dann sollte dort der PR aktualisiert werden.