• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Scheinbar Kodierungsproblem

vivistar

Neues Mitglied
Sämtliche Umlaute kommen in den Emails aus meinem Formular als Fragezeichen an!
Nach langer Suche bei Google und in verschiedenen Foren bin ich zum Ergebniss gekommen, daß es an der Kodierung liegen muss / soll.

Momentan ist diese auf charset=utf-8 eingestellt.
Laut Google und anderen Foren, muss man die Datenbank ebenfalls komplett auf diese Kodierung umstellen. Dies habe ich getan...hat aber nichts genützt :(

Wer kann mir sagen, was ich machen kann bzw. woran es noch liegen kann?

Danke vorab!
 
Der Server muss die Seite auch als utf-8 ausliefern und die Datei, in der die Seiteninhalte stehen, müssen natürlich auch in utf-8 sein.
 
Die Datei ist utf-8.

Das mit dem ausliefern musst du nochmal erklären....
Wie kann ich das einstellen? Wenn ich mich in meine Datenbank einlogge, hab ich dort die Möglichkeit die Kodierung einzustellen.....und das hab ich getan.
Muss ich innerhalb der Datenbank noch woanders dazu was einstellen?

Ich habe mal testweise das eine oder andere kostenlose Formular eingefügt....aber bei den meisten ist das gleiche Problem.....

Wird daher wohl eher an der Datenbank liegen als an meinem Formular oder?
Soll ich das Formluar nochmal posten, zum besseren Verständis?



Anhang: Folgendes steht in meiner Datenbank:
Zeichensatz / Kollation der MySQL-Verbindung: utf8 unicode ci



Richtig so?
 
Zuletzt bearbeitet:
Mit dem "ausliefern" meine ich, dass der Webserver beim Ausliefern der fertigen Seite an den Browser auch eine Codierung angibt. Ändern kannst Du die z.B. per header(), da kannst Du HTTP-Header senden.

Wenn eine Seite in ISO-8859-1 ausgeliefert wird, die Zeichen darin aber UTF-8 sind (oder umgekehrt) dann kommen halt falsche Zeichen bei raus.
 
Sooo.....ich aktualisiere mal die Fakten:


Ich habe wie man sieht nun den header Content-type hinzugefügt!
Auch das hat absolut nichts gebracht!

Ich komme einfach nicht weiter....ich bitte um Hilfe!!
:sad:

Nochmal zur Übersicht der aktuelle Stand meiner 3 entscheidenen Teile der php-Datei:

PHP:
<?php 
 
 
$strEmpfaenger = "[email protected]"; 
 
$strFrom       = "$_POST[Name] <$_POST[Email]>"; 
 
$strSubject    = "Anfrage-über-Kontaktformular"; 
 
$strReturnhtml = "Kontaktdanke.html"; 
 
$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); 
} 
$header  = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/plain; charset=utf-8' . "\r\n";
$header .= 'From: '.$strFrom . "\r\n";
mail($strEmpfaenger, $strSubject, $strMailtext, $header) 
  or die("Die Mail konnte nicht versendet werden."); 
header("Location: Kontaktdanke.html"); 
exit;   
} 
?>
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
usw.....
HTML:
<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post" enctype="utf-8" name="Anfrage" id="Kontakt">
            <span class="Stil9">
            <!-- Hier die eigentlichen Formularfelder eintragen. Die folgenden sind Beispielangaben. -->
            <label>Name:<br />
            </label>
            <input name="Name" type="text" id="Name" size="40"/>
            <br>
            <label>Vorname<br>
            </label>
            <input name="Vorname" type="text" id="Vorname" size="40" />
            <br />
            <label>Telefon<br/>
            </label>
            <input name="Telefon" type="text" id="Telefon" size="40" />
            <br />
            <label>Email<br/>
            </label>
            <input name="Email" type="text" id="Email" size="40" />
            <br />
            <br>
        </span>
            <p class="Stil9"><span class="Stil6">Meine Nachricht:</span><br />
  <label>
  <textarea name="Meine Nachricht" cols="40" rows="8" id="Meine Nachricht"></textarea>
  </label>
</p>
<p>
            <input type="submit" value="Senden" />
            <input type="reset" value="Zurücksetzen" />
    </p>
  </form>
Was ist da los? Warum kommen immernoch nur Fragezeichen anstatt Umlaute an???







Teilweise Problemlösung

Ich habe das Problem nun zum Teil gelöst, indem ein weiterer Header hinzugefügt wurde!;
PHP:
$header .= "Content-Transfer-Encoding: 8bit"
Nun erscheint der Inhalt der Email korrekt!!
Soweit sehr gut - allerdings erscheint in der Betreffzeile und der Absenderzeile im Emailprogramm noch Fragezeichen, wenn ein Umlaut eingegeben wurde.

Ich muss doch sicher irgendwo jetzt diese 8bit Sache ebenfalls einfügen, damit auch dort die Umlaute korrekt angezeigt werden, oder?
Kann da jemand was schlaues zu sagen?
 
Zuletzt bearbeitet:
Weiß keiner mehr was darauf?

Und nochwas.....
Seitdem dort:
PHP:
$header .= "Content-Transfer-Encoding: 8bit"
eingefügt ist, funktioniert es soweit, bekomme aber ca 30 Minuten nach der eigentlichen Email
eine 2te Email, die wie folgt aussieht:
----------------------------------

Content-type: text/plain; charset=utf-8

From: [email protected]

Content-Transfer-Encoding: 8bit
Message-Id: <[email protected]>
Date: Thu, 25 Jun 2009 12:17:45 +0200 (CEST)

Name: ööüüö
Vorname: Name

Telefon: 0505050
Email: [email protected]
Betreff: Beitrag
Meine Nachricht: üööää



Warum das denn nun schon wieder?

PS: Doppelpst bewusst gemacht, da sonst keiner antwortet :(
 
Zurück
Oben