Wieder einmal Umlaute

Hallo Zusammen,

habe ein Kontaktformular (html) und eine Antwort (php) was auch wunderbar funktioniert. Nur werden in der Mail die ich erhalte die Umlaute als ‚?‘ dargestellt.
Wär nett wenn jemand den Code mal anschauen kann wo der Fehler liegt.

Besten Dank im Voraus
Andreas

Kontakt:
[HTML]

<?xml version="1.0" encoding="utf-8"?> Steuerberatung Kerstin Noack | Kontakt
<?php # © Homepage-Total.de $nachname = @$_POST["nachname"]; $email = @$_POST["email"]; $nachricht = @$_POST["nachricht"]; $firma = @$_POST["firma"]; $strasse = @$_POST["strasse"]; $plzort = @$_POST["plzort"]; $telefon = @$_POST["telefon"]; if (isset($_POST["rueckruf"])==true) $rueckruf = "ja"; else $rueckruf = "nein"; # Name des Webmasters (Signatur): (Rainer Zufall) $webmaster ="Steuerkanzlei Noack"; # Ihre E-Mail-Adresse: (rainer-zufall@meineseite.de) $an ="info@ankroh.de"; # Ihre Homepage-Adresse: (http://www.meineseite.de) $url ="http://www.steuerkanzlei-noack.de/"; # Betreff $betreff ="Sie haben eine neue Nachricht ueber $url erhalten"; # Inhalt der Danke E-Mail: $inhalt ="Werte(r) Herr/Frau $nachname,\nvielen Dank fuer Ihren Besuch bei $url. \n Wir haben folgende Nachricht erhalten:\n\n===== Beginn Nachricht =====\n$nachricht\n===== Ende Nachricht =====\n\nMit freundlichen Grüßen\n $webmaster\n\n==================\n"; # URL zur Startseite: (index/home.htm) $start ="http://www.ankroh.de/stb_neu/index.html"; # Nachricht wird an Ihre E-Mailadresse gesendet. $text ="Name: $nachname\nFirma: $firma\nStrasse: $strasse\nPLZ/Ort: $plzort\nRueckruf: $rueckruf\nTelefon: $telefon\n\n====\n $nachricht\n====\n\nSie koennen Herr/Frau $nachname unter $email erreichen."; # E-Mails senden. @mail($an,$betreff,$text,"From: ".$email); @mail($email,"Bestaetigung",$inhalt,"From: ".$an); # Ausgabe der Bestätigung. echo("

Ihre Nachricht wurde erfolgreich an $an gesendet!

"); echo("

Sie erhalten noch eine Bestätigungsmail!

"); echo("

»  Zurück zur Startseite

"); ?>
[/PHP]

Ich würd viel lieber was zu den zahlreichen Fehlern im HTML-Code sagen :slight_smile:

Bei Charsets kann es eigentlich nur an einer Differenz liegen, in welchem Charset das Script gespeichert ist, in welchem Charset die Mail ausgeliefert wird und ob das Mailprogramm vielleicht irgendwas anders macht. Im Zusammenhang mit Mail hab ich mich aber offen gestanden damit noch nicht befasst.
In Deiner Antwort hast Du utf-8 eingestellt. Speichert Du die Datei auch in utf-8?

AW:

Hallo Efchen,

Auch wenn mir im moment Deine Antwort erst einmal nicht weiter hilft, danke ich Dir trotzdem ->mein html-Code ist jetzt sauber.

Andreas

Ich hatte die Kontakt.html und antwort.php in utf-8 gespeichert. Und mein Mailprogramm ist Outlook 2007.

Das heißt, Du hast den xml-Prolog entfernt, das leere -Tag ohne schließendes Tag entfernt, bei statt „language“ immer „type“ benutzt, um einzelne Images die überflüssigen divs entfernt, um die Navigation das überflüssige div entfernt, das Tabellenlayout im Formular entfernt, die Überschrift ohne Inhalt entfernt ( ), das semantisch falsche aus der Adresse (und den anderen Stellen) entfernt, die Adresse auch als Adresse und nicht mehr als Textabsatz ausgezeichnet und Inhalt und Layout strikt voneinander getrennt, indem Du auf veraltete Attribute für physische Inhaltsauseichnung verzichtest?

In der kurzen Zeit eine reife Leistung! :slight_smile:

Wenn man nach dem Problem googlet, bekommt man viele Treffer. Mance empfehlen, mal die Codierung im Mailprogramm zu verändern. Ich weiß nicht, kann man in SMTP auch das charset irgendwo angeben?

Guck doch mal hier: http://en.wikipedia.org/wiki/MIME
Da steht, da das Mail-Format ja reines ASCII ist, müssen Umlaute MIME-codiert sein (bzw. die ganze Mail).
Das könnte Dir weiter helfen.

habe mit [Valid] Markup Validation of http://www.ankroh.de/stb_neu/kontakt.html - W3C Markup Validator
meine Fehler, 30 an der Zahl, mir anzeigen lassen und geändert.
Danke für den Link, werde es mir anschauen.
Andreas

Du weißt, dass der Validator nur syntaktische Fehler findet, aber keine semantischen?
Dafür kann es keinen Validator geben, weil das ein Programm nicht prüfen kann.

Probleme mit mail(): Standardantwort zu mail() - Forum: phpforum.de
Alternative: phpMailer - Forum: phpforum.de

Das spart definitiv Nerven im Vergleich zu irgendwelchen Klapperscripts aus dem Netz.