PHP-Mailer - Umlaute werden falsch dargestellt
Verfasst: 26.06.2009 19:18
Hallo!
Ich habe ein kleines Problem mit meinem PHP-Script. Die Umlaute werden leider nicht richtig gesendet. Wenn ich das Formular auf meiner Website ausfülle, und ich einen Namen mit Umlauten eingebe, werden die Umlaute nur durch irgendwelche Platzhalter dargestellt. Ich lasse mir die Daten in eine Textdatei schreiben die auf dem Server gespeichert wird. (Hier wird alles korrekt angezeigt) Die Daten werden dann mit Hilfe des Mailers an meine Email-adresse gesendet.
Hier ist der Code:
<?php
// Daten in eine Textdatei schreiben
//===================================
$fp = fopen ("Formulardaten.txt", "w");
fwrite ($fp, "Kundendaten" . "\r\n");
fwrite ($fp, "-----------" . "\r\n");
fwrite ($fp, "Vorname: " . $vorname . "\r\n");
fwrite ($fp, "Name: " . $name . "\r\n");
fwrite ($fp, "Firma: " . $firma . "\r\n");
fwrite ($fp, "Email: " . $email . "\r\n");
fwrite ($fp, "Telefon: " . $telefon . "\r\n");
fwrite ($fp, "\r\n");
fwrite ($fp, "Kunde interessiert sich für folgenden Titel: " . $titelname . "\r\n");
fwrite ($fp, "\r\n");
fwrite ($fp, "Er möchte den Titel" . "\r\n");
foreach($titel as $value) {
fwrite ($fp, " - " . $value . "\r\n");
}
fwrite ($fp, "\r\n");
fwrite ($fp, "Der Kunde hat folgendes Anliegen" . "\r\n");
foreach($anliegen as $value) {
fwrite ($fp, " - " . $value . "\r\n");
}
fwrite ($fp, "\r\n");
fwrite ($fp, "Nachricht des Kunden: " . "\r\n");
fwrite ($fp, "--------------------- " . "\r\n" . $nachricht . "\r\n");
fclose ($fp);
// Alle Daten der Textdatei in einen String lesen
//================================================
$fp = fopen ("Formulardaten.txt", "r");
$inhalt = fread ($fp, filesize("Formulardaten.txt") );
fclose ($fp);
//$inhalt = str_replace("\n.", "\n..", $inhalt);
// Daten/String per Email verschicken
//====================================
$recipient = "info@dygryn-musikverlag.de";
mail ($recipient, "Kundenanfrage", $inhalt);
// Erfolgsmeldung auf nächster Web-Seite ausgeben
//================================================
$fmtResponse= implode("", file("kontakt_gesendet.html"));
foreach($_POST as $key=> $val)
{
$fmtResponse= str_replace("<$key>", $val, $fmtResponse);
}
echo $fmtResponse;
?>
Es wäre nett wenn ihr mir helfen könntet. Bin für jeden Tip dankbar.
Ich habe ein kleines Problem mit meinem PHP-Script. Die Umlaute werden leider nicht richtig gesendet. Wenn ich das Formular auf meiner Website ausfülle, und ich einen Namen mit Umlauten eingebe, werden die Umlaute nur durch irgendwelche Platzhalter dargestellt. Ich lasse mir die Daten in eine Textdatei schreiben die auf dem Server gespeichert wird. (Hier wird alles korrekt angezeigt) Die Daten werden dann mit Hilfe des Mailers an meine Email-adresse gesendet.
Hier ist der Code:
<?php
// Daten in eine Textdatei schreiben
//===================================
$fp = fopen ("Formulardaten.txt", "w");
fwrite ($fp, "Kundendaten" . "\r\n");
fwrite ($fp, "-----------" . "\r\n");
fwrite ($fp, "Vorname: " . $vorname . "\r\n");
fwrite ($fp, "Name: " . $name . "\r\n");
fwrite ($fp, "Firma: " . $firma . "\r\n");
fwrite ($fp, "Email: " . $email . "\r\n");
fwrite ($fp, "Telefon: " . $telefon . "\r\n");
fwrite ($fp, "\r\n");
fwrite ($fp, "Kunde interessiert sich für folgenden Titel: " . $titelname . "\r\n");
fwrite ($fp, "\r\n");
fwrite ($fp, "Er möchte den Titel" . "\r\n");
foreach($titel as $value) {
fwrite ($fp, " - " . $value . "\r\n");
}
fwrite ($fp, "\r\n");
fwrite ($fp, "Der Kunde hat folgendes Anliegen" . "\r\n");
foreach($anliegen as $value) {
fwrite ($fp, " - " . $value . "\r\n");
}
fwrite ($fp, "\r\n");
fwrite ($fp, "Nachricht des Kunden: " . "\r\n");
fwrite ($fp, "--------------------- " . "\r\n" . $nachricht . "\r\n");
fclose ($fp);
// Alle Daten der Textdatei in einen String lesen
//================================================
$fp = fopen ("Formulardaten.txt", "r");
$inhalt = fread ($fp, filesize("Formulardaten.txt") );
fclose ($fp);
//$inhalt = str_replace("\n.", "\n..", $inhalt);
// Daten/String per Email verschicken
//====================================
$recipient = "info@dygryn-musikverlag.de";
mail ($recipient, "Kundenanfrage", $inhalt);
// Erfolgsmeldung auf nächster Web-Seite ausgeben
//================================================
$fmtResponse= implode("", file("kontakt_gesendet.html"));
foreach($_POST as $key=> $val)
{
$fmtResponse= str_replace("<$key>", $val, $fmtResponse);
}
echo $fmtResponse;
?>
Es wäre nett wenn ihr mir helfen könntet. Bin für jeden Tip dankbar.