Julius: Kontaktformular & UTF8/Unicode

Beitrag lesen

problematische Seite

Hallo Die IP da halt,

Ich wurde vom Wiki hierher verwiesen, also hier nochmal meine Nachricht:

Die Diskussionsseiten im Wiki sind für Diskussionen zu den Wiki-Inhalten bestimmt (auch wenn sich diese Diskussionen zu 99,9% hier im Forum abspielen) und nicht für Fragen.

Kann mir jemand bei der Frage helfen, wie man mit JavaScript ein einfaches Kontaktformular erstellen kann? Ohne so einem lästigen Zeugs wie CAPTCHA-Sicherheit etc.. Ich habe zwar ein Bisschen Kenntnisse von HTML und CSS, JavaScript ist aber für mich eine totale Fremdsprache, weswegen ich darum bitten würde, eine möglichst laienkonforme Erklärung zu kriegen.

Mailformulare sind überbewertet, die Angabe einer E-Mail-Adresse ist oft bereits ausreichend.

Falls du wirklich ein solches Kontaktformular einbauen willst, brauchst du dafür kein JavaScript, sondern eine Server-seitige Sprache wie PHP. So ein Kontaktformular ist kein triviale Sache, sondern bietet großes Missbrauchspotenzial, wenn es falsch, also unsicher, implementiert wurde: Angreifer könnten es beispielsweise zum Spam-Versand missbrauchen. Du musst dich entweder gründlich mit PHP befassen oder auf einer fertige Lösung zurückgreifen, die es bestimmt gibt, von denen ich aber keine kenne (vor allem nicht deren Sicherheit) und daher auch nicht empfehlen kann.

Die Abfragefelder sollten neben Name, E-Mail-Adresse, Betreff, Nachricht evtl. auch noch über zusätzliche Angaben verfügen können wie bspw. Alter.

Die ersten Angaben bietet bereits ein normales E-Mail-Programm, beim Letzteren kannst du ja auf der Impressumsseite einfach um die Angabe des Alters bitten.

Den mailto-Verweis kennst du bestimmt bereits, aber kennst du auch die erweiterten Möglichkeiten, um beispielsweise mehrere Empfänger oder einen Titel für die Nachricht zu übergeben? Diesen Link kann man auch mit JavaScript ändern und so den Inhalt eines Formulars ins E-Mail-Programm bekommen. Bedenke dabei aber, dass (vermutlich) die Mehrheit der Desktop-Nutzer auf Webmail setzt (bei den Handy-Nutzern kann es anders aussehen, dort wird oft eine passende App installiert) und hier funktioniert dieser Link nicht.

Eine Besonderheit wäre da noch interessant: würde es gehen, dass die über das Formular gesendeten Nachrichten an mehrere E-Mail-Adressen versendet werden?

Das ließe sich auch mit der Angabe einer einzigen E-Mail-Adresse erschlagen: Leitet E-Mails an diese Adresse einfach an zwei oder mehr andere Adressen weiter.

Mittlerweile habe ich übr. noch ein weiteres Problem, was mich jetzt vollends zum Verzweifeln bringt. Bei der als problematisch angegebenen Seite funktioniert der Meta-Carset-Tag nicht, um Sonderzeichen korrekt darzustellen.

Doch, er funktioniert, nur nicht so, wie du meinst, dass er funktionieren müsste:

Eine (Text-)datei ist für den Browser erst einmal ein Haufen Bytes, von denen er nicht weiß, was er damit machen soll. Dass es ein HTML-Dokument ist, weiß er bereits aufgrund des Content-Type-HTTP-Headers (Content-Type: text/html), den der Server mit dem Dokument mitgesendet hat. Also macht sich der Browser in der Datei auf die Suche nach der gültigen Angabe der Zeichenkodierung, denn die wurde nicht mitgesendet. Was er findet, ist <meta charset="UTF-8"> also nimmt er UTF-8 als Zeichenkodierung an. Soweit so gut. Dann trifft der Browser aber auf Bytes, die keine gültigen UTF-8-Sequenzen sind und stellt daher stattdessen das -Symbol dar.

Tatsächlich ist deine Datei aber Windows-1252- und nicht UTF-8-kodiert abgespeichert worden – Du hast quasi einen Text auf Deutsch und behauptest, er wäre in Englisch verfasst. Entweder deklarierst du die Zeichenkodierung richtig, oder du kodierst deine Datei um, wobei letzeres zu empfehlen ist.

In Firefox geht es zwar, wenn ich UTF-8 durch Unicode ersetze, allerdings nicht in Chrome.

Unicode ist keine Zeichenkodierung sondern ein Zeichensatz, der bestimmt, welche Zeichen in ihm enthalten sind. Auf Unicode basierende Zeichenkodierungen wie UTF-8 bestimmen dann, wie die Umsetzung in Bytes konkret abläuft.

„Unicode“ ist hier folglich keine gültige Angabe, daher versuchen die Browser wohl zu raten. Die Ergebnisse siehst du ja.

Merkwürdig aber: auf der Startseite funktioniert es mit UTF-8 problemlos.

... weil du keine Zeichen außerhalb von ASCII (ASCII ist eine Untermenge von UTF-8) eingefügt hast, und so einerseits keine Fehler auftreten, andererseits auch nicht feststellbar ist, welche Zeichenkodierung eigentlich gemeint sein könnte.

Du musst also die Datei UTF-8-kodiert abspeichern, durchforste mal das Menü deines Texteditors. Notepad++ bietet das beispielsweise recht prominent in den Menüs an. Das sollte die Probleme beheben.

Dabei habe ich den Code kopiert, damit es keine Probleme mehr geben könnte. Ob ich vor der schließenden Klammer jetzt noch einen Schrägstrich setze oder nicht, scheint keinen Unterschied zu machen.

Den Schrägstrich brauchst du nicht zu machen, den braucht man nur, falls du das HTML XML-konform als XHTML notieren möchtest.

Außerdem solltest du deine Seiten mit dem Validator überprüfen, der findet zumindest auf deiner Impressums-Seite einige Fehler (unter anderem meckert er über Byte-Sequenzen, die keine gültige Unicode-Zeichen sind, wie bereits oben erklärt). Noch ein paar Tipps für das Beheben der Fehler: Arbeite die Liste möglichst von oben nach unten ab. Du musst auch nicht alle Fehler auf einmal beheben, sondern kannst zwischendurch noch einmal validieren – oft verursacht ein Fehler Folgefehler, die bereits weg sind, wenn der Ausgangsfehler behoben wurde.

Gruß
Julius

0 105

Kontaktformular & UTF8/Unicode

Die IP da halt
  • javascript
  1. 0
    Julius
    • e-mail
    • html
    • zeichencodierung
    1. 0
      Gunnar Bittersmann
      • html
      • zeichencodierung
      1. 0
        Julius
        1. 1
          Gunnar Bittersmann
    2. 0
      Die IP da halt
      1. 1
        dedlfix
      2. 0
        Julius
        1. 0
          Die IP da halt
          1. 0
            Julius
            • e-mail
            • recht
            • zu diesem forum
            1. 0
              Die IP da halt
              1. 0
                Matthias Apsel
      3. 2
        encoder
        1. 0
          Matthias Apsel
          • e-mail
          • recht
          1. 0
            Julius
            • e-mail
            1. 0
              encoder
              1. 0
                Matthias Apsel
      4. 0
        Julius
        • editor
        • html
        • zeichencodierung
        1. 0
          Matthias Apsel
          1. 0
            Julius
            • editor
            • zeichencodierung
        2. 0
          Die IP da halt
          1. 0
            Die IP da halt
          2. 0
            Die IP da halt
            1. 0
              Julius
          3. 0
            Julius
            1. 0
              Die IP da halt
              1. 1
                dedlfix
            2. 0
              Die IP da halt
              1. 0
                Julius
                • ftp
                • html
                • windows
                1. 0
                  Die IP da halt
                  1. 0
                    Matthias Apsel
                    • html
                    1. 0
                      Die IP da halt
                      • html
                      • links
                      1. 0
                        Julius
                        1. 0
                          Matthias Apsel
                          • sonstiges
                          1. 0
                            Julius
                        2. 0
                          Die IP da halt
                          1. 0
                            Matthias Apsel
                            1. 0
                              dedlfix
                            2. 0
                              Julius
                            3. 0
                              Die IP da halt
                              • html
                              • links
                              • meinung
                          2. 1
                            dedlfix
                          3. 0
                            Gunnar Bittersmann
                            • html
                          4. 0
                            Julius
                            • html
                            • links
                            • zu diesem forum
                            1. 0
                              Die IP da halt
                              1. 1
                                Gunnar Bittersmann
                                • ux
                                • web
                                • webdesign
                                1. 0
                                  Die IP da halt
                                  1. 0
                                    Gunnar Bittersmann
                                    1. 0
                                      Die IP da halt
                            2. 0
                              MudGuard
                      2. 0
                        Gunnar Bittersmann
                  2. 0
                    Julius
                    • ftp
                    • windows
                    1. 0
                      Die IP da halt
                      1. 0
                        Die IP da halt
                      2. 0
                        Julius
                        1. 0
                          Die IP da halt
                          1. 1
                            Gunnar Bittersmann
    3. 0
      Die IP da halt
      1. 0
        Julius
        • html
        • zeichencodierung
        1. 0
          Die IP da halt
          1. 0
            Tabellenkalk
  2. -1
    pl
    1. 3
      Regina Schlauklug
      1. 0
        pl
        1. 0
          Julius
          1. 0
            pl
            1. 0
              Julius
      2. 0
        pl
        1. 1
          Julius
        2. 0
          Gunnar Bittersmann
          1. 0
            pl
            1. 0
              Gunnar Bittersmann
              1. 0
                dedlfix
        3. 0
          Regina Schlauklug
          1. 0
            Gunnar Bittersmann
          2. 0
            pl
            1. 1
              dedlfix
              1. 0
                pl
                1. 0
                  Regina Schlauklug
                  1. -1
                    pl
              2. -1
                pl
                1. 0
                  dedlfix
  3. 0
    Julius
    • html
    • recht
  4. 0
    pl
    1. 0
      dedlfix
      1. 0
        pl
        1. 0
          dedlfix
          1. 0
            pl
            1. 0
              dedlfix
            2. 0
              Gunnar Bittersmann
              • sprache
              1. 0
                pl
                1. 0
                  Gunnar Bittersmann
                  • zeichencodierung
                2. 1
                  Christian Kruse
                  • zeichencodierung
                  1. 0
                    Gunnar Bittersmann
                    1. 0
                      Christian Kruse
        2. 1
          Gunnar Bittersmann
          • zeichencodierung
          1. -1
            pl
            1. -1

              Das *g* zur Wochenmitte

              Gunnar Bittersmann
              • menschelei
              1. 3

                Kein *g* zur Wochenmitte

                dedlfix
            2. 2
              Christian Kruse
          2. 2
            Christian Kruse
            1. 0
              Matthias Apsel
              • zu diesem forum
              1. 0
                Christian Kruse
        3. 0
          Christian Kruse
          1. 0
            Tabellenkalk
            • javascript
            • zu diesem forum
            1. 0
              Matthias Apsel