tabur: Keine Umlaute in Formularergebnissen via E-Mail

Beitrag lesen

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;
 }
}