Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP-Formular erzeugt Steuerzeichen in der Feedback-Mail

Einklappen

Google Anzeige oben

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

  • PHP-Formular erzeugt Steuerzeichen in der Feedback-Mail

    Hallo,

    ich verwende folgenden Code, um aus einem PHP-Formular eine Mail zu erzeugen. Die PHP-Datei ist mit "UTF-8 ohne DOM" kodiert. Das Ergebnis ist, dass ich Mails mit folgendem Inhalt bekomme. Weiß jemand, woran es liegt und was ich verändern muss, damit der Text wieder richtig bei mir ankommt - das war nämlich lange der Fall.

    "Ich würde gerne wissen was die Asterix-Münzen aus den Nutellaglas-Deckeln insgesamt Wert sind.
    Es ist die Ausgabe aus Frankreich.
    Für Tipps wär ich echt dankbar weil man überhaupt nichts dazu im Internet findet."


    PHP-Code:
    <?php
    if(isset($_POST['submit'])&&$_POST['submit']) {

            if(
    strlen($text=$_POST['text'])<10) {
            
    $error_msg="bitte geben Sie einen aussagef&auml;higen Text ein.<br>";
            }
            if(
    strlen($name=$_POST['name'])<3) {
            
    $error_msg="bitte geben Sie Ihren Namen ein.<br>";
            }
            
    $email=$_POST['email'];
            if(!
    preg_match("#^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,6})$#",$email)) {
            
    $error_msg="bitte geben Sie eine g&uuml;ltige Mailadresse ein.<br>";
            }
            if(isset(
    $error_msg)) {
            
    //eines der Felder wurde nicht korrekt ausgef&uuml;hrt
            
    echo "<div align=center><H3>Ihre Anfrage konnte leider nicht abgeschickt werden,<br>";
            echo 
    $error_msg;
            echo 
    "<br>F&uuml;llen Sie bitte alle Felder aus.</H3>";
            echo 
    "<H4><A HREF="javascriptZurueckBlaettern()">Zur&uuml;ck zum Formular</A></H4></div>";

            } else {
            
    //alle Felder ausgeführt, Mail generieren
            
    $recipient="frage@comedix.de";
            
    $subject="Feedback Comedix: " $_POST['thema'] . "\n";
            
    $header="From: " $email "\n";
            
    $mail_body ="Anfrage vom " date("d.m.Y") . ".\n";
            
    $mail_body.="Absender: " $name "\n";
            
    $mail_body.="E-Mail: " $email "\n\n";
            
    $mail_body.="Thema: " $_POST['thema'] . "\n";
            
    $mail_body.=$text "\n\n
            ---- Ende der eMail! ----"
    ;

            
    mail($recipient,$subject,$mail_body,$header);

            
    //Antwortseite zur&uuml;ckgeben
            
    echo "<div align=center><H3>Vielen Dank!<BR><BR>Ihre E-Mail wurde erfolgreich versandt.<br><BR>";
            echo 
    "Ich versuche Ihre Mail in der Regel innerhalb von 24 Stunden zu beantworten,<br>wenn ich jedoch Informationen f&uuml;r eine Frage recherchieren muss,<br>kann es unter Umst&auml;nden ein wenig l&auml;nger dauern.";
            echo 
    "<H4><A HREF="javascriptZurueckBlaettern()">Zur&uuml;ck</A></H4>";
            echo 
    "<BR><BR><IMG SRC="../grafik/idefix.gif" ALT="Idefix" WIDTH=120 HEIGHT=123 BORDER=0></div>";
            }
    } else {
    ?>
    <FORM name="Formular" action="<?php echo $_SERVER['SCRIPT_NAME'?>" method="POST" accept-charset="utf-8">
    Deutsches Asterix Archiv
    http://www.comedix.de/

  • #2
    Hi,
    Zitat von Comedix Beitrag anzeigen
    Die PHP-Datei ist mit "UTF-8 ohne DOM" kodiert. Das Ergebnis ist, dass ich Mails mit folgendem Inhalt bekomme.
    da Du in der Datei Umlaute als Entities schreibst, spielt die Kodierung keine Rolle. Maßgeblich ist, mit welcher Kodierung die Seite an den Browser ausgeliefert wird. Und wenn das Problem früher nicht auftrat, dann wird der Server vermutlich eine Kodierung ausgeben, die nicht zur Seite passt.

    Gruß
    Ingo

    Ingo Webdesign

    Kommentar


    • #3
      Danke, das ist ein Ansatz, dem ich folgen kann. Wie kann ich das näher untersuchen? Ich habe ein Hostingpaket und entsprechend keinen vollen Admin-Zugriff. Falls mir das Problem früher nur nicht aufgefallen ist: Gibt es noch andere Gründe, die diese Ausgabe zur Folge haben könnten?
      Deutsches Asterix Archiv
      http://www.comedix.de/

      Kommentar


      • #4
        Hi,
        die Kodierung kann einerseits durch den Server vorgegeben sein, dann muss die Seite dem auch entsprechen. Ansonsten gilt die Definition im head der Seite.
        Ob und was der Server sendet, kannst Du im Firefox über die Seiteninformationen oder ene Erweiterung einsehen.

        Gruß
        Ingo
        Ingo Webdesign

        Kommentar


        • #5
          Danke. Sieht für mich alles okay aus und ich komme dem Problem leider so nicht auf die Spur.
          Deutsches Asterix Archiv
          http://www.comedix.de/

          Kommentar


          • #6
            Hallo Comedix,

            hast Du schon einmal versucht, die Codierung des E-Mail-Headers explizit festzulegen? Zur Zeit legst Du dort über $header nur die Absender-Adresse fest, grundsätzlich kann man dort aber auch andere Metadaten setzen. In der PHP-Dokumentation zur Mail-Funktion wird etwa folgende Zeile verwendet, um die Kodierung einer HTML-E-Mail zu definieren:
            Code:
            $header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
            siehe http://php.net/manual/de/function.mail.php

            Kommentar


            • #7
              Danke, das werde ich ausprobieren.
              Deutsches Asterix Archiv
              http://www.comedix.de/

              Kommentar


              • #8
                Hi,

                Bei solchen Codierungsproblemen sollte man schauen, ob man die wichtigsten Sachen wirklich berücksichtigt hat: http://www.php-rocks.de/thema/98-die...schw-rung.html
                Weiterhin empfehle ich Dir eine Mailerklasse, wie PHPMailer oder SwiftMailer. Deine Mail-Header haben bereits fehlerhafte Terminierungen, lt. RFC sollte es \r\n sein.
                PHProcks! » Tutorials

                Kommentar


                • #9
                  Egal, ich habe keine Lust mich im Detail einzuarbeiten und biete einen Stundenjob hier im Forum "Schwarzes Brett" dazu an:
                  "Suche: Programmierer mit PHP/mySQL-Kenntnissen"
                  Deutsches Asterix Archiv
                  http://www.comedix.de/

                  Kommentar

                  Lädt...
                  X