Kontaktformular utf-8 problem
maggie
- perl
Hallo,
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