Ergebnis 1 bis 6 von 6

Thema: Umlaute werden nicht dargestellt

  1. #1
    TP-Specialist Avatar von oliveramberg
    Registriert seit
    Mar 2002
    Ort
    Schweiz, Dinhard
    Beiträge
    2.566

    Unhappy Umlaute werden nicht dargestellt

    Hallo Gemeinde
    Nach langer Abstinenz bin ich wieder mal da. Natürlich mit einem Problem...

    Ich habe ein Kontakformular, welches mit Probleme mit den Sonderzeichen macht. Im Posteingang bei Gmail oder sonst einem Webaccount sieht alles super aus. In Outlook werden die Sonderzeichen aber nicht korrekt dargestellt:

    PHP-Code:
    <?php
        
    //****************************************
        //edit here
        
    $targetEmail 'mail@mail.com';
        
    $messageSubject 'Message from web-site';
        
    $redirectToReferer true;
        
    $redirectURL 'thankyou.html';
        
        
    //****************************************

        // mail content
        
        
    $udatestart $_POST['Mietbeginn'];
        
    $udateend $_POST['Mietende'];
        
    $ulieferart $_POST['Lieferart'];
        
    $ufirma $_POST['Firma'];
        
    $ufname $_POST['Vorname'];
        
    $ulname $_POST['Name'];
        
    $umail $_POST['E-Mail'];
        
    $uphone $_POST['Telefon'];
        
    $ufax $_POST['Fax'];
        
    $uadresse $_POST['Adresse'];
        
    $uplz $_POST['PLZ'];
        
    $uort $_POST['Ort'];
        
    $uwie $_POST['radio1'];
        
    $usind $_POST['radio2'];
        
    $uhandfunk $_POST['Handfunk'];
        
    $ufahrzeugfunk $_POST['Fahrzeugfunk'];
        
    $ubasisstation $_POST['Basis Station'];
        
    $urepeater $_POST['Repeater'];
        
    $uohrhörer $_POST['Ohrhörer'];
        
    $uhandmikrofon $_POST['Handmikrofon'];
        
    $utarngarnitur $_POST['Tarngarnitur'];
        
    $ukopfhörer $_POST['Kopfhörer'];
        
    $uersatzakku $_POST['Ersatzakku'];
        
    $ubrauchen $_POST['radio3'];
        
    $umessage $_POST['Message'];

        if (
    $_POST['radio1'] == "Telefon"$uwie 'Telefon';
        else if (
    $_POST['radio1'] == "E-Mail"$uwie 'E-Mail';
        else if (
    $_POST['radio1'] == "Post"$uwie 'Post';
        
        if (
    $_POST['radio2'] == "Ja"$usind 'Ja';
        else if (
    $_POST['radio2'] == "Nein"$usind 'Nein';
        
        if (
    $_POST['radio3'] == "Ja"$ubrauchen 'Ja';
        else if (
    $_POST['radio3'] == "Nein"$ubrauchen 'Nein';
        
        
    // company email:
        
    $messageText =    'Mietbeginn: '.$udatestart."\n".
                        
    'Mietende: '.$udateend."\n".
                        
    'Vorname: '.$ufname."\n".
                        
    'Name: '.$ulname."\n".
                        
    'E-Mail: '.$umail."\n".
                        
    'Telefon: '.$uphone."\n";
        
        if (
    $_POST['Lieferart']) $messageText $messageText.'Lieferart: '.$ulieferart."\n";
        if (
    $_POST['Firma']) $messageText $messageText.'Firma: '.$ufirma."\n";
        if (
    $_POST['Fax']) $messageText $messageText.'Fax: '.$ufax."\n";
        if (
    $_POST['Adresse']) $messageText $messageText.'Adresse: '.$uadresse."\n";
        if (
    $_POST['PLZ']) $messageText $messageText.'PLZ: '.$uplz."\n";
        if (
    $_POST['Ort']) $messageText $messageText.'Ort: '.$uort."\n";
        if (
    $_POST['radio1']) $messageText $messageText.'Wie möchten Sie kontaktiert werden: '.$uwie."\n";
        if (
    $_POST['radio2']) $messageText $messageText.'Sind Sie bereits Kunde bei uns: '.$usind."\n";
        if (
    $_POST['Handfunk']) $messageText $messageText.'Handfunk: '.$uhandfunk."\n";
        if (
    $_POST['Fahrzeugfunk']) $messageText $messageText.'Fahrzeugfunk: '.$ufahrzeugfunk."\n";
        if (
    $_POST['Basis Station']) $messageText $messageText.'Basis Station: '.$ubasisstation."\n";
        if (
    $_POST['Repeater']) $messageText $messageText.'Repeater: '.$urepeater."\n";
        if (
    $_POST['Ohrhörer']) $messageText $messageText.'Ohrhörer: '.$uohrhörer."\n";
        if (
    $_POST['Handmikrofon']) $messageText $messageText.'Handmikrofon: '.$uhandmikrofon."\n";
        if (
    $_POST['Tarngarnitur']) $messageText $messageText.'Tarngarnitur: '.$utarngarnitur."\n";
        if (
    $_POST['Kopfhörer']) $messageText $messageText.'Kopfhörer: '.$ukopfhörer."\n";
        if (
    $_POST['Ersatzakku']) $messageText $messageText.'Ersatzakku: '.$uersatzakku."\n";
        if (
    $_POST['radio3']) $messageText $messageText.'Brauchen Sie Vor-Ort-Support: '.$ubrauchen."\n";
        if (
    $_POST['Message']) $messageText $messageText.'Nachricht: '.$umessage."\n";
        
        
    // client email:
        
    $messageHeaders =    'From: '.$umail."\r\n".
                            
    'Reply-To: '.$umail."\r\n".
                            
    'X-Mailer: PHP/'.phpversion();
        if (
    preg_match('/^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$/',$targetEmail,$matches))
        
    mail($targetEmail$messageSubject$messageText$messageHeaders);

        
    // redirect
        
    if($redirectToReferer) {
            
    header("Location: ".@$_SERVER['HTTP_REFERER'].'#sent');
        } else {
            
    header("Location: ".$redirectURL);
        }
    ?>
    Wo liegt der Hund begraben? Um Tipps bin ich sehr dankbar.

    Grüsse Oliver
    Geändert von oliveramberg (06.12.2011 um 10:12 Uhr)

  2. #2
    TP-Veteran Avatar von MatthiasG
    Registriert seit
    Jan 2003
    Ort
    Hallenberg/Würzburg
    Beiträge
    1.328
    Servus,

    bei Deinen MessageHeader vielleicht den Content-Type hinzufügen für das verwenden des richtigen Charsets? Wie das bei Dir aussieht kann ich Dir nicht sagen, weil ich von PHP keine Ahnung habe.

    Gruß
    Matthias

    grad noch was gefunden:
    Beispiel mit utf-8 header
    Geändert von MatthiasG (06.12.2011 um 10:22 Uhr)

  3. #3
    TP-Specialist Avatar von oliveramberg
    Registriert seit
    Mar 2002
    Ort
    Schweiz, Dinhard
    Beiträge
    2.566
    Hallo Matthias
    Danke für den Tipp. Ich habe schon (erfolglos) versucht, ergoogelte Code-Schnippsel einzubauen, die dann UFT-8 umsetzen sollten.
    Ich suche weiter.
    Grüsse Oliver

  4. #4
    TP-Specialist Avatar von Stefan
    Registriert seit
    May 2005
    Ort
    Bad Saulgau
    Beiträge
    3.817
    Sind wirklich alle erdenklichen Stellen in UTF-8?

    • *.php-Datei, welche die Webseite enthält im Editor als UTF-8 abgespeichert
    • Meta-Tag im <Head> der Webseite gesetzt, welche dem Browser sagt, dass die Webseite als UTF-8 decodiert werden soll
    • Im <form>-Tag noch das Attribut "accept-charset" einfügen, damit der Post gaaanz sicher als UTF-8 übertragen wird.
    • In der Mail-Funktion von PHP bitte auch "mail( ... "Content-Type: text/plain; charset=utf-8")" angeben.




    Wenn's dann nicht klappt, puh. Würd ich mir Outlook genauer anschauen, dann hast du echt keine Fehler zu verschulden ^^

  5. #5
    TP-Specialist Avatar von oliveramberg
    Registriert seit
    Mar 2002
    Ort
    Schweiz, Dinhard
    Beiträge
    2.566
    Hallo Stefan
    Danke, dass Du Dir das Ganze angesehen hast
    Im Headerbereich habe wohl alles korrekt:

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

    "accept-charset" habe ich drinn.

    Kannst Du mir sagen, wie ich genau
    Code:
    mail( ... "Content-Type: text/plain; charset=utf-8"
    im PHP-File eingeben muss. Bei mir gibt's im Dreamweaver immer nur Fehlermeldungen.

    Ich habe leider vieel zu wenig Ahnung von PHP.... *schäm*

    Grüsse Oliver

  6. #6
    TP-Specialist Avatar von Stefan
    Registriert seit
    May 2005
    Ort
    Bad Saulgau
    Beiträge
    3.817
    Hey :-)

    Hier ist die mail-Funktion kurz dokumentiert. Den vierten Parameter, den Header, stellst du bereits in deinem Skript zusammen. Habe diesen fett markiert:

    // client email:
    $messageHeaders = 'From: '.$umail."\r\n".
    'Reply-To: '.$umail."\r\n".
    'X-Mailer: PHP/'.phpversion();

    if (preg_match('/^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$/',$targetEmail,$matches))
    mail($targetEmail, $messageSubject, $messageText, $messageHeaders);
    Den müsstest du eigentlich nur erweitern. Bei Wikipedia gibt's zum eMail-Header n schönes Beispiel.

    Würd's mal so probieren:

    $messageHeaders = 'From: '.$umail."\r\n".
    'Reply-To: '.$umail."\r\n".
    'Content-Type: text/plain; charset=UTF-8\r\n'.
    'X-Mailer: PHP/'.phpversion();
    Habs nicht getestet, aber so sollte es gehen. Ich vermute, dass eben Outlook eben, wenn nicht explizit ein Header mit Charset mitgeliefert wurde, eben immer ISO 8859-1 wählt, auch wenn die Zeichen selbst UTF-8 sind. Browser sind mittlerweile etwas intelligenter, aber Outlook kann ja noch nicht mal richtiges CSS :-)

    Ansonsten kannst du mal
    mail($targetEmail, $messageSubject, utf8_decode ($messageText), $messageHeaders);
    probieren. Ist aber die dümmste aller Lösungen, Die PHP-Funktion wandelt eben UTF-8 in ISO um. Aber dann war die ganze Mühe mit UTF-8 umsonst. Außerdem wird dann immer noch kein richtiger Charset-Header an den eMail Client gesendet, so dass es bei anderen eMail Clients, welche UTF-8 als Standard haben, falsch dargestellt wird. Aber vielleicht muss es dringend fertig werden, so als kurzfristige Lösung.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Umlaute werden falsch dargestellt
    Von es-lottchen im Forum Dreamweaver & andere Webeditoren
    Antworten: 10
    Letzter Beitrag: 05.06.2008, 16:06
  2. Umlaute werden nicht angezeigt!
    Von ECHT_nordisch im Forum Webdesign allgemein
    Antworten: 5
    Letzter Beitrag: 03.03.2008, 11:10
  3. Umlaute aus mySQL-Text werden falsch dargestellt
    Von lendrin im Forum Dreamweaver & andere Webeditoren
    Antworten: 12
    Letzter Beitrag: 18.12.2007, 10:38
  4. Umlaute werden nicht gedruckt
    Von Blue Muck im Forum Layout- & Vektor-Programme
    Antworten: 14
    Letzter Beitrag: 08.12.2005, 10:15
  5. Umlaute werden falsch dargestellt
    Von urban-a im Forum Traum-Dynamik
    Antworten: 2
    Letzter Beitrag: 17.06.2005, 15:32

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51