deutsche Umlaute in WP-ContactForm

Rubrik:  Wordpress-Zutaten  ·  Autor:  Zappelfillip26. August 2005, 10:08 Uhr

Damit Besucher meines Blogs auf einfachem Wege Kontakt mit mir aufnehmen können, verwende ich das Plugin WP-ContactForm. Dieses integriert ein Kontaktformular ins Blog, der Besucher muss einfach ein paar Felder ausfüllen, auf „Senden“ klicken und schon erreicht mich eine Email. Eines hat mich aber sehr gestört: es wurden keine deutschen Umlaute wie öäüß angezeigt sondern nur wilder Zeichensalat an der entsprechenden Stelle in der Mail.

Nun habe ich mich auf die Suche gemacht, um dieses Problem zu lösen. Glücklicherweise stellte es sich als sehr einfach heraus. Im Folgenden möchte ich die Lösung für die Plugin-Version 1.0 kurz aufzeigen:

  1. die Plugin-Datei wp-contactform.php mit einem Texteditor, z. B: Notepad, öffnen (falls man das Plugin bereits installiert hat, befindet sie sich in /wp-content/plugins/
  2. nun sucht man nach folgender Zeile:

    $headers .= "Content-Type: text/plain; charset=iso-8859-1\n";

    In der Version 1.0 von WP-ContactForm ist dies die Zeile 83.

  3. diese Zeile ersetzt man durch folgende 2 Zeilen:

    $encoding = get_option('blog_charset');
    $headers .= „Content-Type: text/plain; charset=$encoding\n“;

  4. anschließend die geänderte Datei wieder auf den Webspace laden und fertig

Ab der Version 1.1 von WP-ContactForm wurde versucht, dieses Problem zu beheben, allerdings hat sich dabei ein Fehler eingeschlichen. Hier muss die Zeile

$headers .= "Content-Type: text/plain; $encoding\n";

ersetzt werden durch:

$headers .= "Content-Type: text/plain; charset=$encoding\n";

Nun sollte es in allen Versionen funktionieren.

Diesen Artikel bookmarken:

Diese Icons verlinken auf Bookmark Dienste bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • Digg
  • del.icio.us
  • Technorati
  • Furl
  • StumbleUpon
  • Reddit
  • Webnews
  • MisterWong
  • Y!GG
  • Spurl
  • Bloglines
  • Google Bookmarks

Thematisch verwandte Artikel


6 Kommentare    ·    hier schreiben
  1. Kommentar: Robert am 6.09.2005, 18:16 Uhr

    Cool danke, funktioniert in der 1.2 genau wie in der 1.1.

  2. Kommentar: Eric am 26.10.2005, 20:09 Uhr

    Funktioniert Danke ….. .-) :lol:

  3. Kommentar: Mathias am 11.04.2010, 17:48 Uhr

    Inzwischen ist es ja in der Version 1.5 verfügbar und dein angemerkter Code wurde entsprechend eingestetzt. Trotzdem wird Kauderwelsch geschickt, weil die Nachricht mit htmlentities codiert wird. Diese HTML-Kodierung wird für die Anzeige bei einem Fehler benutzt (darüber kann man streiten, da die Encoding-Codierung ja bereits greifen sollte), wird aber auf jeden Fall beim Senden der Mail nicht zurückgesetzt (htmlentity_decode). Da ist also ein neuer Bug drin.

  4. Kommentar: sebastian am 8.08.2010, 14:11 Uhr

    Mathias hat recht. Man kann die Mails kaum lesen. Sehr schade!

  5. Kommentar: Carrie Cain am 3.09.2010, 14:17 Uhr

    Want more clients and customers? We will help them find you by putting you on the 1st page of Google. Email us back to get a full proposal

  6. Kommentar: SocialMediaMag am 28.12.2011, 00:54 Uhr

    Man kann einfach das htmlentities() beim Namen und der Message löschen. Im Moment bin ich noch dabei, das Ganze um ReCaptcha zu erweitern. Außerdem schadet ein trim() nicht, um Steuerzeichen wie Zeilenumbrüche am anfang und ende zu entfernen. Und ein Pattern-Match auf die Mailadresse, um Header-Injections zu vermeiden.

Kommentar schreiben:

 Vorschau 

powered by Wordpress
 Anmelden