Ankündigung

Einklappen
Keine Ankündigung bisher.

mail.php zeigt keine Umlaute

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mail.php zeigt keine Umlaute

    Hallo zusammen,
    ich bin dabei eine Internetseite zu bauen.
    Das darin enthaltene Kontaktformular wird über eine mail.php versendet.

    Sobald ich diese Mail jedoch empfange, zeigt mir diese keine deutschen Umlaute ä ü ö usw. an.

    Ich habe schon in sämtlichen Foren und Seiten nach dem Fehler gesucht, allerdings komme ich nicht drauf, deshalb wende ich mich an euch.

    Der Zeichensatz ist in meiner mail.php ganz unten bei $headers eingetragen, in der .html steht er ebenfalls ganz oben. Übersehe ich etwas?

    Freue mich auf eure Hilfe!

    PHP-Code:
    <?php

    if($_POST['formid']=='book_table')
    {

      
    $cust_name=$_POST['cust_name'];
      
    $cust_phone=$_POST['cust_phone'];
      
    $name='Admin';
      
    $email='info@formidable-events.de';
      
    $email_to_send_to=$_POST['cust_email'];
        
    $email_subject="AWESOME SPICES - Table Booking Confirmation";
        
    $person_no=$_POST['dine'];
        
    $occasiontype=$_POST['occasiontype'];

        
    $comments='Hello '.$cust_name;
        
    $comments='<br><br><br>The following are your booking details:<br> ';
        
    $comments.='<br> Name :'.$cust_name;
        
    $comments.='<br> Phone no. :'.$cust_phone;
        
    $comments.='<br> Occasion :'.$occasiontype;
        
    $comments.='<br> No. of seats booked :'.$person_no;
    }

    if(
    $_POST['formid']=='contact-us-form')
    {
          
    $name=$cust_name=$_POST['cust_name'];
          
    $email=$_POST['cust_email'];
            
    $email_to_send_to='info@formidable-events.de';
            
    $email_subject="Contact";
          
    $comments=$_POST['comments'];
    }

    if(
    $_POST['formid']=='reserve-form')
    {
            
    $cust_name=$_POST['cust_name'];
            
    $cust_phone=$_POST['cust_phone'];
            
    $cust_firma=$_POST['cust_firma'];
            
    $cust_gast=$_POST['cust_gast'];
            
    $cust_budget=$_POST['cust_budget'];
            
    $cust_nachricht=$_POST['cust_nachricht'];
          
    $name=$_POST['cust_name'];
          
    $email=$_POST['cust_email'];
          
    $email_to_send_to='info@formidable-events.de';
            
    $email_subject="formidable Online Anfrage";
            
    $person_no=$_POST['dine'];
                    
    $drinks=$_POST['drink'];
            
    $zusatz=$_POST['zusatz'];
            
    $occasiontype=$_POST['occasiontype'];
            
    $occasiontype2=$_POST['occasiontype2'];
            
    $tp=$_POST['tp'];
            
    $dp=$_POST['dp'];

            
    $comments='Hello '.$cust_name;
            
    $comments.='<br> You have booked the table for :'.$catering;

            
    $comments='<br><br><br>Folgende Daten wurden &uuml;bermittelt<br> ';
            
    $comments.='<br> <b>Name: </b>'.$cust_name;
            
    $comments.='<br> <b>Telefon: </b>'.$cust_phone;
            
    $comments.='<br> <b>Firma: </b>'.$cust_firma;
            
    $comments.='<br><br> <b>Anlass: </b>'.$occasiontype;
            
    $comments.='<br> <b>Location: </b>'.$occasiontype2;
            
    $comments.='<br> <b>Anzahl G&auml;ste: </b>'.$cust_gast;
            
    $comments.='<br> <b>Budget: </b>'.$cust_budget;
            
    $comments.='<br><br> <b>Wunschdatum: </b>'.$dp;
            
    $comments.='<br> <b>Beginn: </b>'.$tp;
            
    $comments.='<br><br> <b>Catering: </b>'.$person_no;
                    
    $comments.='<br> <b>Getr&auml;nke: </b>'.$drinks;

            
    $comments.='<br><br> <b>Nachricht: </b>'.$cust_nachricht;
    }

    if(
    $_POST['formid']=='contactForm')
    {
          
    $name=$cust_name=$_POST['cust_name'];
          
    $email=$_POST['cust_email'];
            
    $email_to_send_to='info@formidable-events.de';
            
    $email_subject="Contact";
          
    $comments=$_POST['comments'];
    }



    if(
    $_POST['formid']=='our-event-form')
    {
      
    $custName=$_POST['custName'];
      
    $cust_phone=$_POST['cust_phone'];
      
    $name='Admin';
      
    $email='info@formidable-events.de';
      
    $email_to_send_to=$_POST['custEmail'];
        
    $email_subject="AWESOME SPICES - Event Join Confirmation";
        
    $eventName=$_POST['eventName'];
        
    $eventPrice=$_POST['eventPrice'];
        
    $eventPerson=$_POST['eventPerson'];

        
    $comments='Hello '.$cust_name;
        
    $comments='<br><br><br>The following are the details of the event you joined:<br> ';
        
    $comments.='<br> Name :'.$custName;
        
    $comments.='<br> Event name :'.$eventName;
        
    $comments.='<br> No. of person :'.$eventPerson;
        
    $comments.='<br> Price of event :'.$eventPrice;
    }




    if(
    $_POST['formid']=='order-form')
    {
      
    $orderName=$_POST['orderName'];
      
    $orderPhone=$_POST['orderPhone'];
      
    $name='Admin';
      
    $email='info@formidable-events.de';
      
    $email_to_send_to=$_POST['orderEmail'];
        
    $email_subject="AWESOME SPICES - Order Confirmation on ".date('M-d-Y');
        
    $orderAddress=$_POST['orderAddress'];
        
    $orderPincode=$_POST['orderPincode'];
        
        
    $comments='Hello '.$orderName;
        
    $comments.='<br><br><br>The following are the details of the order you placed:<br> ';
        
    $comments.='<br> Name :'.$orderName;
        
    $comments.='<br> Address :'.$orderAddress;
        
    $comments.='<br> Pincode :'.$orderPincode;
        
    $comments.='<br> Phone no. :'.$orderPhone;
        
    $comments.='<br><br>';

        
    $str='<table style="width:100%;">';
        
    $str.='<tr>
                            <td style="text-decoration: underline; width: 300px;">Item Name</td>
                            <td style="text-decoration: underline;">Price</td>
                        </tr>'
    ;
        
    $dishes=explode("|",$_POST['dishes']);
        for(
    $i=0;$i<count($dishes);$i++)
        {
              
    $dish=explode(":",$dishes[$i]);
              
    $str.='<tr>
                              <td>'
    .$dish[0].'</td>
                              <td>'
    .$dish[1].'</td>
                          </tr>'
    ;         
        }
        
    $str.='</table>';    
        
    $comments.=$str

        
    $headers'MIME-Version: 1.0' "\r\n";
        
    $headers .= 'Content-type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable' "\r\n";
        
    $headers.= 'From: '.$name.'<'.$email_to_send_to.'> ' "\r\n" .'Reply-To: '.$email_to_send_to.' ' "\r\n" .'X-Mailer: PHP/' phpversion();
        
    $toadmin 'Name :'.$orderName;
        
    $toadmin.= '<hr><br>'.$str;
         @
    mail($email,$email_subject,$toadmin,$headers);
         
    $headers='';
    }



    $headers'MIME-Version: 1.0' "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable' "\r\n";
    $headers.= 'From: '.$name.'<'.$email.'> ' "\r\n" .'Reply-To: '.$email.' ' "\r\n" .'X-Mailer: PHP/' phpversion();

         
    $ret = @mail($email_to_send_to,$email_subject,$comments,$headers);
         if(!
    $ret){
                echo 
    'Nachricht konnte nicht gesendet werden, bitte versuchen Sie es direkt an info@formidable-events.de';
         }else{
                echo 
    'Nachricht erfolgreich gesendet!';
         }

        die();

    ?>

    PHP-Code:
    <!DOCTYPE html>
    <
    html>
      <
    head>
        <
    meta charset="ISO-8859-1">
        <!-- <
    meta http-equiv="X-UA-Compatible" content="IE=Edge"> -->
        <
    meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <
    title>Test</title>
        <
    meta name="description" content="">
        <
    meta name="viewport" content="width=device-width, initial-scale=1">
        <
    link rel="stylesheet" href="dist/font-awesome.css">
        <
    link rel="stylesheet" href="dist/jquery.bxslider.css">
        <
    link rel="stylesheet" href="dist/animate.css" media="screen" />
        <
    link rel="stylesheet" type="text/css" href="dist/jquery.datetimepicker.css">

        <
    link rel="stylesheet" href="style.css">
        <
    link rel="stylesheet" href="dist/desktop.css">
        <
    link rel="stylesheet" href="dist/tab.css">
        <
    link rel="stylesheet" href="dist/mobile.css">    

        <!--[if 
    IE]>
            <
    script src="_assets/js/html5shiv.js"></script>
            <link rel="stylesheet" href="dist/ie9.css">
        <![endif]-->
        
        <script src="_assets/js/modernizr.custom.50095.js"></script>
        <script src="_assets/js/respond.js"></script>
           
        
      </head> 

  • #2
    utf-8 immer und überall, Hilfe gibt es bei Google
    Fatal Error: Windows wird gestartet

    Wie administriert man ein Netzwerk: Beispiel

    Kommentar


    • #3
      Zitat von Unlikus Beitrag anzeigen
      utf-8 immer und überall, Hilfe gibt es bei Google
      dann funktioniert es aber leider genauso wenig. es zeigt mir trotzdem keine umlaute.
      wenn ich ein ä in der mail schicke kommt es so bei mir an:
      أ¤

      Kommentar


      • #4
        ja eindeutig ein Problem mit nicht flächendeckender utf-8 Nutzung
        Fatal Error: Windows wird gestartet

        Wie administriert man ein Netzwerk: Beispiel

        Kommentar


        • #5
          Zitat von Unlikus Beitrag anzeigen
          ja eindeutig ein Problem mit nicht flächendeckender utf-8 Nutzung
          sorry aber was soll mir das jetzt sagen? jetzt weiß ich immer noch nicht wo der fehler liegt

          Kommentar


          • #6
            naja einfach mal probieren <meta charset="utf-8" > statt irgent welche andere charsets. und auch bei allem anderen was man benutzt, sicherstellen, dass die utf-8 verwenden.
            Fatal Error: Windows wird gestartet

            Wie administriert man ein Netzwerk: Beispiel

            Kommentar


            • #7
              Zitat von Unlikus Beitrag anzeigen
              naja einfach mal probieren <meta charset="utf-8" > statt irgent welche andere charsets. und auch bei allem anderen was man benutzt, sicherstellen, dass die utf-8 verwenden.
              habe ich schon überall versucht, sowohl in der mail.php als auch in meiner .html datei, dann kommt leider nur das raus, was ich oben gezeigt habe.

              Kommentar


              • #8
                Tipp 1:
                Bitte nicht mail() benutzen, sondern eine ordentliche Mail-Klasse (phpmailer / swiftmail).
                Du läufst sonst immer den Problemen hinterher:
                - dass deine Email erst gar nicht gesendet wird
                - deine Email-Header NICHT RFC konform sind und die mail von einem der Zwischensysteme deshalb nicht weiterbefördert wird
                - am Zielsystem abgelehnt wird
                - Inhalte/Umlaute falsch dargestellt werden.

                In jeder guten Mailerklasse kannst du den Zeichensatz setzen.

                Tipp 2:

                Zitat von Aus PHP.de Beiträgen
                Nutze konsequent UTF-8. Kurze Checkliste für UTF-8 und Umlautprobleme:
                - HTTP Header Content-Type mit UTF-8
                - in HTML-Seiten <meta http-equiv="content-type" content="text/html; charset=utf-8" />
                oder <meta charset="utf-8"><!-- HTML5 -->
                sollte idealerweise als Erstes, gleich nach dem einleitenden head-Element erfolgen
                - PHP und HTML/Template Dateien im Editor als "UTF-8 ohne BOM" speichern
                - Formulardaten in UTF-8 übergeben (ggf. mit accept-charset="utf-8" sicherstellen)
                - Datenbank Zeichensatz UTF-8, Tabellenkollationen utf8_general_ci o.Ä.
                - Datenbankverbindung von PHP zu MySQL auf UTF-8 stellen
                - Daten aus Fremdquellen müssen in UTF-8 überführt werden, wenn sie nicht als UTF-8 vorliegen
                utf8_encode: ISO-8859-1-Zeichenkette -> UTF-8
                - htmlentities codierung mitgeben, Beispiel: htmlentities($info,ENT_NOQUOTES,'UTF-8');
                - für deutsche Monatsnamen wie März ist u.U. setlocale(LC_TIME, "de_DE.utf8") notwendig
                Diagnosetipps:
                Erscheinen ��� statt der erwarteten Umlaute äöü, dann werden oft ISO 8859-1 codierte Zeichen im Browser als UTF-8 interpretiert.
                Mögliche Ursache:
                Für den Header/Metatag ist charset=UTF-8 gesetzt, die Seiten sind jedoch nicht als UTF-8 gespeichert
                oder die Zeichen stammen aus einer nicht UTF-8 Fremdquelle (Datenbank, Datei, Window-System..)

                Erscheinen Ausgaben wie ä ö ü für ä ö ü, dann werden oft UTF-8 codierte Zeichen als ISO 8859-1 interpretiert.
                Mögliche Ursache:
                Fehlender oder falscher Header/Metatag. Ein header('Content-Type: text/html; charset=UTF-8'); im PHP-Script löst
                in vielen Fällen schon das Problem.
                Oder eine sog. Überkodierung: header und Zeichen UTF-8, irgendwo ein utf8_encode zuviel.

                LG jspit

                Kommentar

                Lädt...
                X