Kontaktformular utf-8 problem
    
maggie
    
    
      
    
  - perl
 nicht angemeldet
 nicht angemeldetHallo,
ein Kontaktformular gibt die Umlaute falsch wieder: Grüße erscheint so: GrüÃ
Meta tag:
<meta http-equiv="content-type" content="text/html;charset=utf-8">
Das Formular beginnt so:
<FORM ACTION=http://www.domainname.de/cgi-bin/formmailer.pl METHOD=POST accept-charset="UTF-8">
Muss noch an anderer Stelle die das charset utf-8 angegeben werden?
Gruß
Maggie
hi,
<FORM ACTION=http://www.domainname.de/cgi-bin/formmailer.pl METHOD=POST accept-charset="UTF-8">
Zeig mal die Maildatei, welche formmailer.pl erstellt.
--
hi,
<FORM ACTION=http://www.domainname.de/cgi-bin/formmailer.pl METHOD=POST accept-charset="UTF-8">
Zeig mal die Maildatei, welche formmailer.pl erstellt.
realname:
email:
subject: Kontakt
nachricht: Hallo!
"Düsseldorfer Bälger schütten à l auf die Straà e."
Viele Grüà e
telefon:
adresse:
hi,
<FORM ACTION=http://www.domainname.de/cgi-bin/formmailer.pl METHOD=POST accept-charset="UTF-8">
Zeig mal die Maildatei, welche formmailer.pl erstellt.
[...]
Interessant. Da fehlen ja alle Header, insbesondere diejenigen, welche die Zeichenkodierung betreffen.
Du hast 2 Möglichkeiten:
Horst
hi,
<FORM ACTION=http://www.domainname.de/cgi-bin/formmailer.pl METHOD=POST accept-charset="UTF-8">
Zeig mal die Maildatei, welche formmailer.pl erstellt.
[...]
Interessant. Da fehlen ja alle Header, insbesondere diejenigen, welche die Zeichenkodierung betreffen.
Du hast 2 Möglichkeiten:
- studiere die einschlägigen RFCs, so weißt Du wie eine Maildatei auszusehen hat und so kannst Du die auch mit Perl erstellen
- Nutze ein zweckmäßiges CPAN Modul
Horst
Hallo Horst,
ich habe die Ausgabe gezeigt, also so wie das Formular als E-Mail angekommen ist.
Die HTML Datei, die das formmailer.pl aufruft, sieht so aus:
<FORM ACTION=http://www.domainname.de/cgi-bin/formmailer.pl METHOD=POST accept-charset="UTF-8">  
  
  <INPUT type=hidden name=recipient value=kontakt@reginabachmann.de>  
  <INPUT type=hidden name=subject value="Kontakt">  
  <INPUT type=hidden name=print_config value="realname, email, subject, telefon, adresse, nachricht">  
  <INPUT type=hidden name=print_blank_fields value=1>  
  <INPUT type=hidden name=redirect value=http://www.domainname.de/kontakt_danke.htm>  
  <table border="0" style="border-collapse: collapse" id="kontakt" cellpadding="0">  
  <tr>  
  <td align="left" valign="top">  
    Name:  
  <br>  
  <INPUT NAME=realname size=42 tabindex=1>  
  </td>  
  <td align="left" valign="bottom" rowspan="4">  </td>  
  
  <td align="left" valign="bottom" rowspan="4">  
  
 Nachricht:<br>  
  <textarea rows="9" cols="42" name="nachricht" tabindex="5"></textarea></td>  
  </tr>  
  <tr>  
  <td align="left" valign="top">  
    Telefon:<br>  
  <INPUT NAME=telefon size=42 tabindex=2>  
  </td>  
  </tr>  
  <tr>  
  <td align="left" valign="top">  
    eMail:<br>  
  <INPUT NAME=email size=42 tabindex=3></td>  
  </tr>  
  <tr>  
  <td align="left" valign="bottom">  
    Adresse:<br>  
  <textarea name="adresse" cols="39" rows="2" tabindex="4"></textarea>  
  </td>  
  </tr>  
  </table>  
  <p style="margin-left: 10px; margin-top: 0; margin-bottom: 0"> </p>  
  
  <INPUT type=reset value=Zurücksetzen>   
  <INPUT TYPE=submit VALUE=Abschicken></FORM>
moin,
ich habe die Ausgabe gezeigt, also so wie das Formular als E-Mail angekommen ist.
Die HTML Datei, die das formmailer.pl aufruft, sieht so aus:
Du verwendest dein Mailformular online und möchtest utf-8. Prüfe, ob die Seite mit dem Formular mit dem HTTP-Response-Header
Content-Type: text/html; charset=UTF-8
ausgeliefert wird. Dein Script formmailer.pl nimmt die Eingaben entgegen und erstellt eine Maildatei. Hierin sind Header zu setzen, was die Zeichenkodierung betrifft, damit ein Mailclient die richtig darstellen kann. Beispiel:
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; Charset=UTF-8
Der Subject-Header muss ASCII sein, er kann, um das sicherzustellen, quoted-printable oder base64 kodiert sein und beinhaltet dazu außerdem die Angabe der Kodierung. Lege den Subject-Header einfach selbst fest (ASCII).
Erstelle die Maildatei über ein Template:
---------------------------- schnipp -----------------------------------
From: %from%
To: %to%
Subject: %subject%
Date: %date%
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; Charset=%charset%
%mesg%
---------------------------- schnapp -----------------------------------
Dann sieht die auch so aus wie sie sein soll ;)
Danke für die ausführliche Erklärung!
Maggie