drkzne
Goto Top

PHP Mail - Umlaute

$post_vars['name'] = htmlentities($_POST['name'],ENT_QUOTES,'utf-8');
$post_vars['strasse'] = htmlentities($_POST['strasse'],ENT_QUOTES,'utf-8');
$post_vars['plz'] = htmlentities($_POST['plz'],ENT_QUOTES,'utf-8');
$post_vars['ort'] = htmlentities($_POST['ort'],ENT_QUOTES,'utf-8');
$post_vars['telefon'] = htmlentities($_POST['telefon'],ENT_QUOTES,'utf-8');
$post_vars['email'] = htmlentities($_POST['email'],ENT_QUOTES,'utf-8');
$post_vars['check'] = htmlentities($_POST['check'],ENT_QUOTES,'utf-8');
$post_vars['lief_name'] = htmlentities($_POST['lief_name'],ENT_QUOTES,'utf-8');
$post_vars['lief_strasse'] = htmlentities($_POST['lief_strasse'],ENT_QUOTES,'utf-8');
$post_vars['lief_plz'] = htmlentities($_POST['lief_plz'],ENT_QUOTES,'utf-8');
$post_vars['lief_ort'] = htmlentities($_POST['lief_ort'],ENT_QUOTES,'utf-8');

Hallo,

momentan bin ich dabei einen Webshop aufzubauen.
Ich benutze das fertige PHP Script von Laaser Shopsystem (http://www.laaser.net/)

Nun habe ich das Problem, dass wenn der Kunde etwas bestellt und eine bestätigungs E-Mail bekommt,wo die Umlaute nicht ordentlich angezeigt werden.

e71617ab20f22b5c6fe3b6063fc07e2e-e-mail

Ich habe schon verschiedene Charsets ausprobiert

- UTF-8
- ISO-8859-1
- ISO-8859-15

Leider bringt keines die gewünschte Veränderung. Die einzige veränderung ist, dass die Umlaute verschieden dar gestellt werden.

Entweder mit Fragezeichen oder mit den HTML zeichen.

Bitte um Hilfe.

Lieben Gruß
Lukas

Content-ID: 112525

Url: https://administrator.de/forum/php-mail-umlaute-112525.html

Ausgedruckt am: 23.12.2024 um 03:12 Uhr

emjott
emjott 27.03.2009 um 09:44:59 Uhr
Goto Top
MOin MOin,

in einer reinen Text E-Mail wird die HTML-konforme Umlauteschreibweise nicht unterstützt. Schreibe einfach die Umlaute rein so wie sie sind.... z.B. "für" anstelle von "für".
...oder du verschickst nur noch HTML-E-Mails, dann sollte auch wieder "für" richtig angezeigt werden.

Gruß
drkznE
drkznE 27.03.2009 um 09:58:42 Uhr
Goto Top
Hey,

danke erstmal für deine Antwort.

Ich hätte vll. mein Problem etwas genauer beschreiben sollen.

Ich versuche es noch einmal.

Wenn der Kunde etwas bestellt, bekommt er eine Bestätigungs E-Mail mit seiner angegebenen Adresse und den Produkten die er Bestellt hat.

Diese E-Mail wird ganz normal über PHP Script mail( ) verschickt.

In dieser bestätigungs E-Mail werden Umlaute/Sonderzeichen verkehrt angezeigt. ein ü wird als html anzeichen ü oder als Fragezeichen angezeigt. Je nach dem welchen Charset ich benutze.

Ich habe hier in den anderen Threads auch schonmal geschaut, habe da aber noch keine Lösung gefunden.

Lieben Gruß

ps: Manchmal wird es auch ordentlich angezeigt, manchmal auch wieder nicht.

Bei einem Freehoster wie Funpic wurde alles richtig angezeigt. Kann es an 1&1 liegen?
emjott
emjott 27.03.2009 um 10:45:00 Uhr
Goto Top
ich bin immernoch der Meinung, dass es an dem Format (HTML-E-Mail, Rich Text, nur Text) der E-Mail liegt, wie die Zeichen gelesen bzw. interpretiert werden.
Interpretiert das Programm die Mail als "HTML-E-Mail", werden "ü" als "ü", "ä" als "ä" usw. angezeigt. Wird die E-Mail nur als Text E-Mail erkannt und entsprechend ausgelesen, wird "&auml" gelesen und ausgegeben. Woher soll der E-Mail-Clients sonst wissen, dass er "&auml" als "ä" anzeigen soll?

Hast du es schon mit einem E-Mail-Programm wie Outlook, Outlook Express oder Thunderbird die E-Mails zu öffnen versucht? Wie werden die da angezeigt?

"mail( )" schickt die Mail so raus, wie Sie an "mail( )" übergeben wird. Standardmäßig wird das dann immer eine TEXT E-Mail sein. Verwende in PHP für die E-Mails lieber "htmlmimemail5". Das funktioniert super und die E-Mails gehen standardmäßig als HTML-E-Mail raus, wodurch dann "ü" als "ü" und "ä" als "ä" angezeigt wird.
nxclass
nxclass 27.03.2009 um 11:01:21 Uhr
Goto Top
schon mal geprüft wie die Daten vom Formular -> Server -> PHP kommen ?
encoding ...

Manchmal ändert der Server das Encoding der Webseite und du bekommst dann Daten zurück die Du so nicht erwartest.
runlevel2
runlevel2 27.03.2009 um 11:09:35 Uhr
Goto Top
Genau. Mit phpinfo() kannst Du das Encoding checken:

PHP Core - default_charset

Apache Environment - HTTP_ACCEPT_CHARSET

Gruss, Kurt
drkznE
drkznE 27.03.2009 um 14:00:14 Uhr
Goto Top
Hallo und danke für eure Beiträge. Werde es nachher einmal checken, wenn ich zuhause bin.

Melde mich dann wieder!

Danke nochmals.
drkznE
drkznE 01.04.2009 um 14:13:14 Uhr
Goto Top
Hallo ich bins wieder und entschuldigung die späte meldung.

Habe es nun einmal gemacht.

http://skanex.de/umlaute.php

So leider hilft mir das nicht so viel weiter, weil ich nicht ganz schlau drauß werde. Wie kann ich nun weiter verfahren oder anders, hilft es euch?

Lg
runlevel2
runlevel2 04.05.2009 um 21:42:17 Uhr
Goto Top
Hy Lukas,

hat etwas gedauert. Die phpinfo()-Ausgabe gibt nichts her, deshalb hab ich mich mal im Forum des Shop-Scriptes umgeschaut. Vielleicht hilft Dir das weiter:


Gruss,
Kurt