Forum Doku Wiki Blog

Forumsarchiv 2007, Januar
Keine Umlaute in Formularergebnissen via E-Mail

archivierte Beiträge lesen

  1. (HTML/XHTML) Keine Umlaute in Formularergebnissen via E-Mail von tabur, 25. 01. 2007, 09:11

Keine Umlaute in Formularergebnissen via E-Mail

Der folgende Beitrag wurde am 25. 01. 2007, 09:11 Uhr von tabur veröffentlicht.


Hallo zusammen,

zuerst: ich bin Laie, habe aber ein schönes Formular hinbekommen, das serverseitig mittels einer Datei (XXX.php) verarbeitet wird und mir die Ergebnisse via Mail zusendet. Funktioniert auch alles ganz wunderbar. Einziger Haken ist, dass in der Mail keine Umlaute dargestellt werden, sondern unleserliche Zeichenfolgen. Ich habe keine Ahnung, wie ich das Problem ändern könnte - kann mir jemand helfen/Tipps geben dazu?

Die Seite selber bzw. die Seite, in der das Formular ist, ist utf-8 codiert, habe es aber auch schon mit ISO probiert - nix. :-(

Besten Dank im voraus
und freundliche Grüße

tabur

Keine Umlaute in Formularergebnissen via E-Mail

Der folgende Beitrag wurde am 25. 01. 2007, 09:40 Uhr von wahsaga veröffentlicht.

hi,

> zuerst: ich bin Laie, habe aber ein schönes Formular hinbekommen, das serverseitig mittels einer Datei (XXX.php) verarbeitet wird und mir die Ergebnisse via Mail zusendet. Funktioniert auch alles ganz wunderbar. Einziger Haken ist, dass in der Mail keine Umlaute dargestellt werden, sondern unleserliche Zeichenfolgen. Ich habe keine Ahnung, wie ich das Problem ändern könnte - kann mir jemand helfen/Tipps geben dazu?

Gebe in der Mail an, welche Zeichenkodierung du verwendest, in dem du ihr einen Content-Type Header mit entsprechender Angabe verpasst. Beispiele siehe mail() im Manual.

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

Keine Umlaute in Formularergebnissen via E-Mail

Der folgende Beitrag wurde am 25. 01. 2007, 09:46 Uhr von tabur veröffentlicht.

danke dir, wahsaga für deine rasche antwort! leider bin ich wirklich totaler laie und weiß nicht sorecht, was ich wo einbauen kann/muss.

bedeutet, dass in der mail.php die codierung fehlt?

das ist der inhalt der mail.php, die die ergebnisse verarbeitet:

/************************************
 * KONFIGURATION                    *
 ***********************************/

/* Geben Sie hier Ihre E-Mail Adresse zwischen den beiden " an: */

$_emails[0] = "XX@XXX.de";

/* Es ist möglich, weitere Empfänger zu definieren, durch weitere
   Zeilen, die vom Aufbau identisch zur obigen sind, lediglich statt
   der 0 muss immer eine andere Zahl dort stehen.
   Per input type=hidden Feld im Formular kann dann der Empfänger
   festgelegt werden:
   <input type="hidden" name="recipient" value="0">
   Bei 0 ist die Nummer der E-Mail Adresse anzugeben. */

/* Weiterhin ist es möglich, ebenfalls mit einem input type=hidden
   Feld, anzugeben wohin der Besucher nach versenden der Mail
   weitergeleitet werden soll:
   <input type="hidden" name="redirect" value="http://www.XXX.de">
   Die URL muss mit http:// oder ftp:// beginnen. */

/* Ebenfalls kann der Betreff der versendeten E-Mail vorgegeben werden:
   <input type="hidden" name="subject" value="Hier der Betreff">
   Standardmäßig wird als Betreff "Formular Daten" verwendet. */

/************************************
 * SCRIPT                           *
 ***********************************/

/* Wenn Sie keine Ahnung haben, sollten Sie spätestens hier aufhören,
   irgendwas zu verändern. */

// Wenn keine $_POST Daten übermittelt wurden, dann abbrechen
if(!isset($_POST) OR empty($_POST))
{
 header("Content-type: text/plain");
 echo "Es wurden keine Daten übermittelt!";
 exit;
}
else
{
 // Datum, Uhrzeit und Pfad zum eigenen Script feststellen
 $date = date("d.m.Y");
 $time = date("H:i");
 $host = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];

 // Empfänger feststellen und auf Gültigkeit prüfen
 if(isset($_POST['recipient']) AND isset($_emails[ $_POST['recipient'] ])
    AND preg_match("/^.*@.*\..*$/", $_emails[ $_POST['recipient'] ]))
 {
  $recipient = $_emails[ $_POST['recipient'] ];
 }
 // Wurde kein (gültiger) Empfänger angegeben, es mit $_email[0] versuchen
 elseif(isset($_emails[0]) AND preg_match("/^.*@.*\..*$/", $_emails[0]))
 {
  $recipient = $_emails[0];
 }
 // Ist auch diese Adresse ungültig, mit Fehlermeldung abbrechen
 else
 {
  header("Content-type: text/plain");
  echo "Fehler im Script - es wurde kein Empfänger oder eine ungültige E-Mail Adresse in \$_emails[0] angegeben.";
  exit;
 }

 // Wenn Betreff übermittelt, diesen verwenden
 if(isset($_POST['subject']))
 {
  $subject = $_POST['subject'];
 }
 // sonst einen Default Betreff verwenden
 else
 {
  $subject = "Formular Daten von {$_SERVER['HTTP_HOST']}";
 }

 // E-Mai Kopf generieren
 $email = "Formular Eintrag\n"
     . "\n"
     . "Am $date um $time Uhr hast das Script auf $host Formulardaten empfangen,\n"
     . "welche nach Angabe des Browsers von {$_SERVER['HTTP_REFERER']} stammen.\n"
     . "\n"
     . "Der Formular Inhalt wird nachfolgend wiedergegeben.\n"
     . "\n";

 // Alle $_POST Werte an den E-Mail Kopf anhängen
 foreach($_POST as $key => $value)
 {
  if($key == "redirect" OR $key == "recipient" OR $key == "subject")
  {
   continue;
  }
  $email .= "Fomular Feld '$key':\n"
      .  "=============================\n"
      .  "$value\n"
      .  "\n";
 }

 // E-Mail Fuß anfügen
 $email .= "=============================\n"
     .  "Ende der automatisch generierten E-Mail.";

 // Versuchen E-Mail zu versenden
 if(!mail($recipient, $subject, $email))
 {
  // Ist dies gescheitert, Fehlermeldung ausgeben
  echo "Es ist ein Fehler beim Versenden der E-Mail aufgetreten,"
    . " eventuell liegt ein Konfigurationsfehler am Server vor.\n\n";
  exit;
 }

 // Wenn gewünscht, auf Bestätigungsseite weiterleiten
 if(isset($_POST['redirect']) AND preg_match("=^(http|ftp)://.*\..*$=", $_POST['redirect']))
 {
  header("Location: ".$_POST['redirect']);
  exit;
 }
 // sonst eine Bestätigung ausgeben
 else
 {
  header("Content-type: text/html");
  echo "Die E-Mail wurde erfolgreich versendet.";
  exit;
 }
}

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4