Probleme mit Sonderlauten beim Kontaktformular

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

  • Probleme mit Sonderlauten beim Kontaktformular

    Hallo zusammen, auch wenn das Thema vielleicht schon mal gab, habe ich es leider nicht gefunden.

    Und zwar funktioniert bei meinen Kontaktformular die Sonderzeichen nicht, wenn das Kontaktformular abgeschickt wurde. Im Programm selber werden die Sonderzeichen reibungslos umgewandelt. Die abgesendete Datei zeigt jedoch die Sonderzeichen nicht richtig an. Ich schicke die Daten über

    PHP-Code:
     <form action="post"
    Habe auch schon die post Dateien direkt abgeschickt, aber kommt das gleiche bei raus.

    Habe schon auf der PHP Seite nachgeschaut, aber ohne großen Erfolg. Könnt ihr mir helfen?

  • #2
    welche sonderzeichen meinst du? etwas genauer?
    Signatur-Text ...

    Kommentar


    • #3
      PHP-Code:
              $suchmuster[0] = '/Ü/';
              
      $suchmuster[1] = '/ü/';
      ...
              
      $ersetzungen[0] = '&Uuml;';
              
      $ersetzungen[1] = '&uuml';
      ...
        
      $strBetreff=preg_replace('#<br />#','' $_POST['strBetreff']);

      $strBetreff=htmlspecialchars($strBetreff);

      $strBetreff=preg_replace($suchmuster,$ersetzungen$_POST['strBetreff']); 
      Das ist der obere Teil. Die $strBetreff wird dann den Formularbenutzer angezeigt. Hier läuft alles einwandfrei.

      Natürlich kann &uuml; in einer Standardemail ohne HTML nicht anzeigen werden. Also:

      PHP-Code:
      ...
           
      $mailnachricht.=$_POST['strBetreff'];
      ...
      mail("Meine Email Adresse"$mailbetreff$mailnachricht"From: $strEmail"); 
      In der Email wird nun aber Kontakt: Schön statt Kontakt: Schön angezeigt

      Kommentar


      • #4
        Ich kann auch mal ANTWORTEN

        Ich habe vor Kurzem auch ein Kontaktformular gecodet und da ist mir aufgefallen, dass die eMail-Provider üs und äs und so weiter automatisch umwandelt. Das gleiche gilt übringends auch für Zeilenumbrüche. Also, wenn du die Funktionen
        PHP-Code:
        n12br($text); 
        und
        PHP-Code:
        htmlentities($text); 
        benutzt, dann wird beim eMail lesen statt "Ü" und "Ä", "&uuml;" und "&auml;" angezeigt. Bei den Absätzen fügt er dann statt "<br>", "<br><br>" ein.

        Also wenn es das war, was du gemeint hast ...

        Gruß
        icecream
        icedcream.de Webdesign Regensburg

        Kommentar


        • #5
          Irgendwie ist der Fehler immer noch nicht behoben. Wenn ich folgendes eingebe:

          PHP-Code:
          echo $_POST['strInfo']; 
          Gibt er mir das aus: Hallo schön sieht das hier aus
          Auch wenn ich alle Felder in einen Variable speichere und nochmal auslesen lasse, ist noch alles in Ordnung.
          PHP-Code:
                $mailnachricht.="Betreff: $strBetreff\n";
                
          $mailnachricht.=$_POST['strInfo']; 
          Vom Kontaktformular:
          Geschrieben am: 19.01.2006 11:11:34
          ------------------------- | Informationen: | -------------------------
          Betreff: asdas
          Hallo schön sieht das hier ausE-Mail erfolgreich verschickt.

          Gesendet sieht dann leider folgendermaßen aus,
          Hallo schön sieht das hier aus

          Ich habe jetzt bei $_POST['strInfo'] es mit und ohne umwandeln der Umlaute probiert.

          Kommentar


          • #6
            Irgendwie konnte ich den Fehler immer noch nicht beheben und so langsam nervt dies auch.

            Ich habe gehört, dass es an der utf-8 Kodierung liegt. Diese muss leider auch angeschaltet bleiben, da sonst die Galerie nicht mehr funktioniert. Eine Encodierung mit base64_encode ( ); soll ich nun einbinden. Da wird jedoch aus dem Text: SGFsbG9hIHNjaMO2biDDpGhtIMO8YnJpZyDDnyDDqSAiICcgYWhh


            PHP-Code:
                  ...
                  
            $mailnachricht.="\n-------------------------\n";
                  
            $mailnachricht.="| Informationen:         |\n";
                  
            $mailnachricht.="-------------------------\n";
                  
            $mailnachricht.="Betreff: $strBetreff\n";
                  
            $Information=base64_encode($_POST['strInfo']);
                  
            $mailnachricht.=$Information;
                  
            $mailbetreff="Kontakt: $strBetreff";
                  
                  
            mail("xxx@xxx.de"$mailbetreff$mailnachricht"From: $strEmail"); 
            Ist das vielleicht falsch? Wenn ja, könntet ihr den richtigen Code schicken?

            Kommentar


            • #7
              entweder wird die mail als utf8 versand und die Daten kommen als iso an, in diesem Falle auf den Mailtext vor dem Aufruf von mail() einmal utf8_encode() anwenden,
              wenn die mail als iso versand wird und die Daten als utf8 ankommen, dann einmal utf8_decode() vor dem Aufruf von mail() anwenden

              Eine von den beiden oben genannten Fällen scheint bei dir zuzutreffen...

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar


              • #8
                Original geschrieben von ghostgambler
                entweder wird die mail als utf8 versand und die Daten kommen als iso an, in diesem Falle auf den Mailtext vor dem Aufruf von mail() einmal utf8_encode() anwenden,
                wenn die mail als iso versand wird und die Daten als utf8 ankommen, dann einmal utf8_decode() vor dem Aufruf von mail() anwenden

                Eine von den beiden oben genannten Fällen scheint bei dir zuzutreffen...
                Bei
                PHP-Code:
                utf8_encode($_POST['strInfo']) 
                Da bin ich wieder. Schön, dass klären wir dann 'morgen' oder doch lieber "übermorgen"? Scheiße


                Bei
                PHP-Code:
                utf8_decode($_POST['strInfo']) 
                Da bin ich wieder. Sch?dass kl?n wir dann 'morgen' oder doch lieber "?morgen"? Schei?

                Also funktioniert es da auch nicht richtig. Komisch so langsam muss doch mal das Richtige dabei sein. Leider muss ich für die Seiten utf-8 verwenden, da sonst die Galerie spinnt.

                Habe es auch schon mit
                PHP-Code:
                nl2br(htmlentities($_POST['strInfo'], ENT_QUOTES,"ISO-8859-1")); 
                aber da kam auch nichts anständiges bei raus.

                Kommentar


                • #9
                  Schon mal versucht bei der mail nen utf-8 header mit zusenden??

                  Kommentar


                  • #10
                    Original geschrieben von Trashar
                    Schon mal versucht bei der mail nen utf-8 header mit zusenden??
                    Ne wie geht den das?

                    Kommentar


                    • #11
                      PHP-Code:
                      // für HTML-E-Mails muss der 'Content-type'-Header gesetzt werden
                      $header  'MIME-Version: 1.0' "\r\n";
                      $header .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";

                      // zusätzliche Header
                      $header .= 'To: Simone <simone@example.com>, Andreas <andreas@example.com>' "\r\n";
                      $header .= 'From: Geburtstags-Erinnerungen <geburtstag@example.com>' "\r\n";
                      $header .= 'Cc: [email]geburtstagsarchiv@example.com[/email]' "\r\n";
                      $header .= 'Bcc: [email]geburtstagscheck@example.com[/email]' "\r\n";

                      // verschicke die E-Mail
                      mail($empfaenger$betreff$nachricht$header); 
                      Hier dan einfach ein anderes charset... http://de.php.net/manual/de/function.mail.php

                      Kommentar


                      • #12
                        PHP-Code:
                        mail($an,$subject,$msg,"Content-Type: text/plain; charset=\"utf-8\"\r\n"); 
                        würd ich spontan und ungetestet behaupten..
                        Content-Type natürlich anpassen!
                        MfG

                        EDIT:
                        tja, dass passiert wenn man zwischen durch mal telefoniert, da war wer schneller

                        Kommentar


                        • #13
                          Ich habe das auch ausprobiert, irgendwie muss das etwas mit der Eingabe im Header Bereich zu tun haben. Ich habe die Datei mal aus der Hauptdatei rausgenommen und dann funktionierte die Übersetzung einwandfrei.

                          Wisst ihr warum er bei
                          <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">
                          und einer Einbindung der Galerie im Header Bereich solche Probleme macht?

                          Kommentar


                          • #14
                            Original geschrieben von Salitor
                            Ich habe das auch ausprobiert, irgendwie muss das etwas mit der Eingabe im Header Bereich zu tun haben. Ich habe die Datei mal aus der Hauptdatei rausgenommen und dann funktionierte die Übersetzung einwandfrei.

                            Wisst ihr warum er bei
                            <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">
                            und einer Einbindung der Galerie im Header Bereich solche Probleme macht?
                            Link?

                            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                            Wie man Fragen richtig stellt

                            Kommentar

                            Lädt...
                            X