Ankündigung

Einklappen
Keine Ankündigung bisher.

Umlaute in Formular

Einklappen

Neue Werbung 2019

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

  • Umlaute in Formular

    Hallo zusammen,

    Habe folgendes Problem.
    Ich habe ein Formular, was ein Textarea enthält.
    Das Formular funktioniert soweit, nur das alles was mit Umlauten zu tun hat nicht richtig ankommt. Hat wahrscheinlich was mit UTF8 oder iso 8859-1 zu tun, soweit ich schon im I-Net gelesen habe. Leider habe ich keine Lösung gefunden.Zumindestens keine die funktioniert.

    So kommen die Sonderzeichen nach abschicken der mail an:

    Ä = Ä
    ä = ä
    Ö = Ö
    ö = ö
    Ü = Ü
    ü = ü

    Was kann man da am besten machen?

    Gruß

    CueP

  • #2
    Zitat von cuep Beitrag anzeigen
    ä = ä
    Wen Du ein in utf-8 codiertes ä als latin-1 ausgeben läßt, wird ä angezeigt. Also ja, Du hast eine utf-8 Eingabe vom Formular und die Mail ist iso 8859-1.
    Du kannst entweder
    - den Browser auffordern, latin-1 zu senden
    - die Eingabedaten utf-8 -> latin-1 konvertieren
    - die Mail als utf-8 codiert markieren
    Wie wird die Mail erzeugt?

    Kommentar


    • #3
      Du musst alles nur Erdenkliche auf UTF-8 stellen. Dann dürfte es gehen.
      Eine andere sehr unschöne Methode wäre sonst noch die Symptombekämpfung mittels utf8_decode(), aber versuche lieber, sowohl die Eingabe-, als auch die Ausgabeseite sowie die Datenbankverbindung (falls vorhanden) auf UTF-8 zu stellen. Auch die HTML- und PHP-Dateien selbst solltest du mit UTF-8 speichern. Eine versendete Mail muss im Content-Type auch UTF-8 stehen haben (wie David schon schrieb).
      Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

      Kommentar


      • #4
        Danke für die schnelle Antwort.
        Was genau meinst du mit, "wie wird die Mail erzeugt".
        Ich habe ein formular.php Datei die, die Daten über die
        mail() Funktion versendet.
        Kannst du mir ein Link oder eine Anweisung hier schreiben, weil leider kann ich mit den Möglichkeiten die du genannt hast nicht soviel anfangen.

        PS: Eine Datenbankverbindung gibt es nicht.

        Danke

        Gruß

        CueP

        Kommentar


        • #5
          Ich habe ein formular.php Datei die, die Daten über die
          mail() Funktion versendet.
          Werden da irgendwelche header gesetzt? Wie sieht die Code-Zeile mit mail() aus?

          Bei SwiftMailer setze ich einfach das Charset über eine Methode des Nachrichten-Objekts
          Zitat von http://www.swiftmailer.org/wikidocs/v3/composition/headers
          Equally, if your headers are not in UTF-8 or ISO-8859-1 character format, you will need to specify the character set using setCharset():
          Code:
          $message =& new Swift_Message();
          $message->headers->setCharset("windows-874");

          Kommentar


          • #6
            Die Funktion mail() hat einen Parameter $headers. In diesem kannst due verschiedene Mail-Header, getrennt durch zeilenumbrüche angeben (ich denke, das kennst du - ansonsten hilft PHP.net dir gerne weiter).
            Hier musst du unter anderem auch den Header Content-Type angeben:
            Code:
            "Content-Type: text/plain; Charset=UTF-8\n"
            bzw.
            Code:
            "Content-Type: text/html; Charset=UTF-8\n"
            für HTML-Mails (ich hoffe doch, du bist keiner dieser HTML-Mail-Anhänger ).

            Edit:
            Zu langsam, aber wenigstens habe ich nicht exakt das gleiche geschrieben.
            Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

            Kommentar


            • #7
              Ich werde eure beiden Varianten mal probieren.
              Ja ich habe in der Mail Funktion einen header wo auch
              "Content-Type: text/plain; Charset=UTF-8\n" drinne steht. Geht damit auch nicht. Wie gesagt werde es mal probieren und mich aufjedenfall nochmal melden.
              @Manko10 Lieber zu spät als nie

              Gruß

              CueP

              Kommentar


              • #8
                Die mail() sieht so aus

                Code:
                mail($email,$betreff,$message,$header);
                Leider geht das was bisher vorgeschlagen wurde nicht!
                Habe auch was gelesen das man bei
                <form action... noch was mit accept-chars eintragen kann würde das was bringen?

                Gruß

                CueP

                Kommentar


                • #9
                  Nein, ich denke nicht.
                  Was wir noch wissen wollen:

                  welchen Inhalt hat die Variablen $headers? Mit welchem Zeichensatz wird die Formularseite angezeigt (bitte nicht nur auf das META-Tag schauen, sondern wirklich (im Firefox) unter Ansicht->Zeichenkodierung).
                  Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                  Kommentar


                  • #10
                    Zitat von cuep Beitrag anzeigen
                    Leider geht das was bisher vorgeschlagen wurde nicht!
                    Also irgendwie glaube ich nicht, dass Du so schnell SwiftMailer ausprobiert hast
                    Content-type funktioniert nur bei Mime-Mails. Vielleicht gibt es auch Mail-Programme, die den Content-type/charset auch ohne MIME-Ankündigung akzeptieren, Thunderbird scheint das schon mal nicht zu tun.

                    Kommentar


                    • #11
                      Eventuell musst du noch zusätzlich diesen Header setzen:
                      Code:
                      Content-Transfer-Encoding: 8bit
                      wenn das nicht geht, versuche mal:
                      Code:
                      Content-Transfer-Encoding: base64
                      und kodiere den Mail-Text vor dem Absenden mit der Funktion base64_encode().
                      Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                      Kommentar


                      • #12
                        Okay ich glaube das ist wohl doch ne größer Sache.
                        Du hast recht ich habe nicht geschaut was Swiftmailer ist .
                        Hatte nur das mit dem "Content..." probiert eben.
                        Ich teste das ganze über web.de nur zur Info falls das wichtig ist.
                        Habe schon einige Varianten im Netz gelesen wie das schon angesprochen accept-charset in dem Form Tag.
                        Kannst du mir eine Seite empfehlen, wo ich mich mal den ganze Codierung die für mich jetzt hilfreich wären näher infomieren kann.
                        Habe bei php.net hier nachgeschaut PHP: mail - Manual

                        Probiere erst mal das mit dem Content-Transfer-Encoding: 8bit bzw. Content-Transfer-Encoding: base64

                        Kommentar


                        • #13
                          Das accept-charset hast Du so
                          Code:
                          <form accept-charset="ISO-8859-1" action=...
                          versucht?

                          Zitat von cuep Beitrag anzeigen
                          Probiere erst mal das mit dem Content-Transfer-Encoding: 8bit bzw. Content-Transfer-Encoding: base64
                          Auch das ist MIME.

                          Kommentar


                          • #14
                            Content-Transfer-Encoding sollte rein, sonst geht der SMTP-Server weiterhin von 7bit aus und nicht von den erforderlichen 8.
                            Mit
                            Code:
                            Content-Type: text/plain; charset=utf-8
                            Content-Transfer-Encoding: 8bit
                            fahre ich eigentlich immer ganz gut (in allen Clients), sonst evtl. noch den Header
                            Code:
                            MIME-Version: 1.0
                            setzen.
                            Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                            Kommentar


                            • #15
                              Und das in der richtigen Reihenfolge, nach den MIME-Regeln und ohne Schreibfehler.
                              Und deshalb vielleicht doch lieber eine Bibliothek verwenden?
                              Eine, mit der man auch leicht HTML Mails verschicken kann? Und mit der man auch Mail-Server, die eine sichere Verbindung/Authentifizierung erfordern, benutzen kann? Und sinnvolle Fehlermeldungen erhält (ohne die Logdateien der Mailserver einsehen zu müssen)? Also alles Gründe, die gegen mail() sprechen.
                              Wenn ich eine Streichliste für php6 erstellen könnte, würde mail() neben register_globals und maig_quotes stehen

                              Kommentar

                              Lädt...
                              X