PHP POST Umlaute Kodierung falsch?

Hi!

Also ich habe ein Kontaktformular auf meiner HTML Seite. Da gibt man halt so Sachen wie Name und eine Nachricht und so weiter ein. Die Daten werden dann per POST an die PHP Datei geschickt, welche diese per Mail verschicken soll. Das Mail versenden klappt auch soweit, aber die Umlaute werden als komische Sonderzeichen angezeigt, der Rest der Mail kommt normal an. Ich dachte vielleicht interpretiert der mail Befehl die Sonderzeichen irgendwie falsch, deshalb habe ich in meiner PHP noch folgende Zeilen eingebaut die die Umlaute aus der Nachricht entfernen sollen bevor sie verschickt wird.

$messagemail = $_POST['message'];

$messagemail = str_replace("ä", "ae" , $messagemail);
$messagemail = str_replace("ü", "ue" , $messagemail);
$messagemail = str_replace("ö", "oe" , $messagemail);
$messagemail = str_replace("Ä", "Ae" , $messagemail);
$messagemail = str_replace("Ü", "Ue" , $messagemail);
$messagemail = str_replace("Ö", "Oe" , $messagemail);
$messagemail = str_replace("ß", "ss" , $messagemail);
$messagemail = str_replace("´", "" , $messagemail);
$messagemail = str_replace("`", "" , $messagemail);
$messagemail = str_replace("é", "" , $messagemail);
$messagemail = str_replace("è", "" , $messagemail);

Allerdings ersetzt der str replace Befehl in dem String garnichts, die Mail kommt wie vorher mit seltsamen Sonderzeichen an. Jetzt habe ich die Befürchtung, dass die Sonderzeichen nicht durch den Mail Befehl so verunstaltet werden, sondern schon durch das Senden mit POST an das PHP Dokument. Wenn die Sonderzeichen nämlich schon falsch im PHP Dokument ankommen, kann str_replace natürlich auch keine ä oder ö usw. finden bzw. ersetzen.

Wie kann ich kontrollieren, dass die Sonderzeichen mit POST richtig übertragen werden??

LG Yoda00

Codierung, PHP
PHP Script mit Anzeige einer Info zum aktuellen Tag

Hallo Zusammen,

da ich absolut keine Ahnung von PHP habe und auch auf php.net nicht klar gekommen bin, möchte ich mich nun an euch Fachleute wenden.

Hintergrund ist die automatische anzeige der heutigen Öffnungszeit. Ich habe ein PHP-Script auf Webbausteine.de gefunden und abgeändert. Spiele ich die Seite mit dem Script per Ftp hoch wird es auch angezeigt wie ich es möchte, ändert sich dann allerdings am nächsten Tag nicht. Heißt, es wird immer nur die Öffnungszeit von dem Tag angezeigt, an dem das Script hochgeladen wurde.

Was muss ich da ändern?

Orginal Script von webbausteine.de:

<?php // Wochentag ausgeben function Wochentag($Tag, $Monat, $Jahr){ $tage = array( 0 => "Sonntag", 1 => "Montag", 2 => "Dienstag", 3 => "Mittwoch", 4 => "Donnerstag", 5 => "Freitag", 6 => "Samstag");

$wt = getdate(mktime(0, 0, 0, $Monat, $Tag, $Jahr)); return $tage["$wt[wday]"]; } ?>

und hier meine Laienhaften änderungen:

<?php // Wochentag ausgeben function Wochentag($Tag, $Monat, $Jahr){ $tage = array( 0 => "geschlossen", 1 => "09.00 Uhr - 13.00 Uhr", 2 => "09.00 Uhr - 13.00 Uhr und
15.00 Uhr - 19.00 Uhr", 3 => "09.00 Uhr - 13.00 Uhr", 4 => "09.00 Uhr - 13.00 Uhr und
15.00 Uhr - 19.00 Uhr", 5 => "09.00 Uhr - 12.30 Uhr", 6 => "geschlossen");

$wt = getdate(mktime(0, 0, 0, $Monat, $Tag, $Jahr)); return $tage["$wt[wday]"]; } ?>

<?php echo "

Heute:

"; echo Wochentag ($Tag, $Monat, $Jahr); ?>

Wäre nett, wenn mir jemand helfen könnte.

Gruß Thorsten

Webseite, PHP

Meistgelesene Fragen zum Thema PHP