Formular Umlaute richtig darstellen? wie?
Florian Dümig
- php
0 Tom
Hallo!
hab ein Problem bei der Weiterverarbeitung meines Formulars.
Ich bekomme im Outlook die Umlaute nicht richtig dargestellt!
Welchen Code muss ich noch einfügen und bitte angeben wo genau, da ich mich mit php überhaupt nicht auskenne. Wäre super wenn mir jemand helfen könnte.
Dankeschön.
hier der Code!
<?php
$strEmpfaenger = 'etiketten@rs-etiketten.de';
$strFrom = '"Formmailer" etiketten@rs-etiketten.de';
$strSubject = 'Bestellformular';
$strReturnhtml = 'http://www.rs-etiketten.de/danke.htm';
$strDelimiter = ":\t";
if($_POST)
{
$strMailtext = "";
while(list($strName,$value) = each($_POST))
{
if(is_array($value))
{
foreach($value as $value_array)
{
$strMailtext .= $strName.$strDelimiter.$value_array."\n";
}
}
else
{
$strMailtext .= $strName.$strDelimiter.$value."\n";
}
}
if(get_magic_quotes_gpc())
{
$strMailtext = stripslashes($strMailtext);
}
mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
or die("Die Mail konnte nicht versendet werden.");
header("Location: $strReturnhtml");
exit;
}
Hello,
hab ein Problem bei der Weiterverarbeitung meines Formulars.
Ich bekomme im Outlook die Umlaute nicht richtig dargestellt!
Welche Codierung hat die Webseite? Üblich sind
Mailtransfer wird ursprünglich nur über ASCII (127 Zeichen) abgewickelt. Da gibt es also gar keine Umlaute. Wenn Du Zeichen versenden willst, die außerhalb von ASCII liegen, musst Du die codieren.
PHP hat dafür inzwischen fertige Funktionen:
http://www.php.net/manual/en/function.mb-encode-mimeheader.php
Nun ist es aber auch noch relevant, in welcher Codierung Deine PHP-Scripte vorliegen.
Du solltest Dir also erst einmal ein Codierungsdiagramm erstellen, damut Du weißt, was wann wo wie codiert ist.
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
Moin!
PHP hat dafür inzwischen fertige Funktionen:
http://www.php.net/manual/en/function.mb-encode-mimeheader.php
Wie du dem geposteten Code entnehmen kannst, sind sämtliche Informationen, die in den Header gelangen, frei von Umlauten und statisch, so dass diese Funktion nicht benötigt wird.
Ich vermute einfach mal, dass das Problem im Mailbody liegt, und durch eine passende Angabe eines Mime-Typs inkl. Encoding gelöst werden kann.
- Sven Rautenberg
Leider komme ich damit nich zurecht, habe den Code kopiert kenne mich also damit nicht aus, benötige den Code den ich einfügen muss in der phpdatei.
Vielleicht kann mir jemand helfen?
Moin!
»» PHP hat dafür inzwischen fertige Funktionen:
»»
»» http://www.php.net/manual/en/function.mb-encode-mimeheader.phpWie du dem geposteten Code entnehmen kannst, sind sämtliche Informationen, die in den Header gelangen, frei von Umlauten und statisch, so dass diese Funktion nicht benötigt wird.
Ich vermute einfach mal, dass das Problem im Mailbody liegt, und durch eine passende Angabe eines Mime-Typs inkl. Encoding gelöst werden kann.
- Sven Rautenberg
Leider komme ich damit nich zurecht, habe den Code kopiert kenne mich also damit nicht aus, benötige den Code den ich einfügen muss in der phpdatei.
Vielleicht kann mir jemand helfen?
Ja, fang doch erstmal da an, wo Tom geschrieben hat. Ich hab mir Deine HP und die 'danke.html' auch schonmal angeschaut, da sind verschiedene 'charset' deklariert. Es wäre gut, hier erst einmal aufzuräumen und eine einheitliche Linie reinzubringen.
Hotte
Mahlzeit Florian Dümig,
Leider komme ich damit nich zurecht, habe den Code kopiert kenne mich also damit nicht aus, benötige den Code den ich einfügen muss in der phpdatei.
Dann bist Du hier leider komplett verkehrt. Dies hier ist das "SELF"HTML-Forum, nicht das "Ich-such-geil-funzenden-Code-hab-aber-keinen-Plan-davon-und-will-auch-nix-lernen,-kann-also-mal-jemand-meinen-Job-machen?"HTML.
Abgesehen davon weiß aufgrund Deiner bisher mehr als dürftigen Problembeschreibung sicherlich keiner Deiner Leser genau, was der eigentliche Fehler ist, was Dein eigentliches Anliegen ist und wie man Dir helfen könnte ... hilf' anderen, Dir zu helfen.
Vielleicht kann mir jemand helfen?
Du Dir selbst. Indem Du Deinen Lesern genauere Informationen lieferst.
MfG,
EKKi
Hello,
Leider komme ich damit nich zurecht, habe den Code kopiert kenne mich also damit nicht aus, benötige den Code den ich einfügen muss in der phpdatei.
Vielleicht kann mir jemand helfen?
Klar, darum bist Du ja hier :-)
Vorgehensweise:
Nimm Dir einen einfachen Mailclient, z.B. M$-Outlook-Express
Baue Dir damit ein paar einfache Mails.
Diese Dateien schaust Du Dir dann in einem einfachen _guten_ texteditor an. Ich bevorzuge hier immer noch Textpad, da es einem ganz klar macht, was es wie anzeigt, also ob Sonderzeichen und UTF-8 schon decodiert angezeigt werden oder eben als Ein-Byte-Code "as it is"
Daraus kannst Du einiges über den Aufbau von Mails lernen. Genau so muss ja der Formmailer die Mails aufbauen, die Du per Formular an das Script schickst.
Und dann siche hier im Archiv und im Web nach dem Stichwort "MIME Mail".
Da wirst Du garantiert fündig und kannst Deine Aufgabe lösen.
Eine "schnelle Lösung" gibt es nicht, wen Du verstehen willst, was alles dahinter steckt.
Lass Dir ruhig ein wenig Zeit dafür - so ca. sechs Wochen - Du kannst das Wissen dann sicherlich noch etliche Jahre weiterverwenden. So schnell wird sich der Standard nicht vollständig ändern. Er hat schließlich auch über 30 Jahre gebraucht, um nach und nach auf den heutigen Stand zu kommen.
Viel Erfolg
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg