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

[ERLEDIGT] Umlaute Kontaktformular

Status
Für weitere Antworten geschlossen.

rantanplan2000

Mitglied
Hallo,

ich habe habe das Problem, dass mein Kontaktformular keine Umlaute im Mail-Postfach (Empfänger) anzeigt. Wo liegt der Fehler?

Meta der Seite habe ich auf UMT-8 gestellt (Auf der Seite und beim ausfüllen wird auch alles nach UFT-8 angezeigt. Irgendwie muss da was beim verarbeiteten scheitern.

Meta-Angabe:
Code:
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />


Script:
Code:
<script>

$('#form-kontakt').submit(function() {
    var formControl = true;
 
    var formvorname = $('#formvorname');
    var formnachname = $('#formnachname');
    var formemail = $('#formemail');
    var formtelefon = $('#formtelefon');
    var formnachricht = $('#formnachricht');
 
    formvorname.removeClass('has-error');
   formnachname.removeClass('has-error');
   formemail.removeClass('has-error');
   formtelefon.removeClass('has-error');
   formnachricht.removeClass('has-error');
 
    var vorname = $('#vorname').val();
    var nachname = $('#nachname').val();
    var email = $('#email').val();
    var telefon = $('#telefon').val();
    var nachricht = $('#nachricht').val();
 
    if(vorname == '') {
         formControl = false;
         formvorname.addClass('has-error');
   }
    if(nachname == '') {
         formControl = false;
         formnachname.addClass('has-error');
   }
    if(email == '') {
         formControl = false;
         formemail.addClass('has-error');
   }
    if(telefon == '') {
         formControl = false;
         formtelefon.addClass('has-error');
   }
    if(nachricht == '') {
         formControl = false;
         formnachricht.addClass('has-error');
   }
 
    if(formControl) { 
    $.ajax({
      type: "POST",
      url: "Kontaktformular.php",
      data: { vorname:vorname, nachname:nachname, email:email, telefon:telefon, nachricht:nachricht }
    }).done(function(message) {
 
     var erfolgsmeldung = $('#erfolgsmeldung'); 
     erfolgsmeldung.html(message);
     erfolgsmeldung-addClass('alert');
    erfolgsmeldung-addClass('alert-success'); 
    });
    }
         
return false;     
});
</script>


und die Kontaktformular.php:

Code:
<head>
<meta charset="UTF-8">
</head>

<?php

$vorname = $_POST['vorname'];
$nachname = $_POST['$nachname'];
$email = $_POST['email'];
$telefon = $_POST['telefon'];
$nachricht = $_POST['nachricht'];


$empfaenger = "[email protected]"; //Eigene E-Mail
$absendername = "Kontaktformular";
$absendermail = $_POST['email'];
$betreff = "Nachricht durch Webseite";
$text = "Neue Nachricht des Kunden:

Vorname: ".$_POST['vorname']."\n
Nachname: ".$_POST['nachname']."\n
E-Mail: ".$_POST['email']."\n
Telefon: ".$_POST['telefon']."\n
Nachricht: ".$_POST['nachricht']."\n";


mail($empfaenger, $betreff, $text, "From: $absendername <$absendermail>");

echo("Vielen Dank! Ihre Anfrage wurde erfolgreich versandt.");

?>

Ist die Lösung für ein Kontaktformular überhaupt noch up2date oder sollte ich eine andere Lösung mit jquery nutzen? Danke für Hilfe.
 
Werbung:
<meta charset="utf-8"> im Dokumentkopf ist nicht das einzige Kriterium, das sicherstellt, dass Umlaute korrekt dargestellt werden.
  1. Sind auch alle involvierten Dokumente/Dateien/Scripts im Editor UTF8-kodiert gespeichert worden?
  2. Welcher Charset ist für den Server eingestellt? (siehe https://www.w3.org/International/articles/http-charset/index)
  3. ...
Desweiteren bezüglich .ajax() und den möglichen Settings:
http://api.jquery.com/jquery.ajax/ schrieb:
contentType (default: 'application/x-www-form-urlencoded; charset=UTF-8')

Type: Boolean or String

When sending data to the server, use this content type. Default is "application/x-www-form-urlencoded; charset=UTF-8", which is fine for most cases. If you explicitly pass in a content-type to $.ajax(), then it is always sent to the server (even if no data is sent). As of jQuery 1.6 you can pass false to tell jQuery to not set any content type header. Note: The W3C XMLHttpRequest specification dictates that the charset is always UTF-8; specifying another charset will not force the browser to change the encoding. Note: For cross-domain requests, setting the content type to anything other than application/x-www-form-urlencoded, multipart/form-data, or text/plain will trigger the browser to send a preflight OPTIONS request to the server.
Zitatquelle: http://api.jquery.com/jquery.ajax/
 
Und das wichtigste: Content-Type/charset header in der Mail angeben. Aber am besten gleich SwiftMailer statt mail() verwenden.
 
Werbung:
Danke an alle Antworten. Also ... folgendes habe ich jetzt ergänzt (richtig?) :

in der Kontaktformular.php:

Code:
<?php

header('Content-Type: text/html; charset=UTF-8');

$vorname = $_POST['vorname'];
$nachname = $_POST['$nachname']; ............

Eine .htaccess zugefüht mit:

Code:
<?php
AddDefaultCharset UTF-8

Geht noch nichts :-/

EDITH sagt: ich bekomme privat hilfe, danke für die mühe - hat sich dann erledigt.
 
Zuletzt bearbeitet von einem Moderator:
Wenn .htaccess im Spiel ist, muß nach dem Server-Upload der Browsercache geleert werden, damit auch die aktuelle Version vom Server geladen wird.
 
Werbung:
ich bekomme privat hilfe, danke für die mühe - hat sich dann erledigt.
Einen Beitrag ändern, um z.B. (Tipp)Fehler zu berichtigen, oder noch was an weiteren Infos o.ä. nachzureichen, kein Problem - völlig legitim, mach' ich selbst.

Ihn aber komplett durch einen neuen Inhalt zu ersetzen, nachdem darauf (von mir) schon geantwortet wurde? Hallo? Geht garnicht!

Deshalb war ich so frei, die ursprüngliche Version zurückzuholen, und Deinen gekonnten Abgang unten d'ranzutackern.
Danke an alle Antworten. Also ... folgendes habe ich jetzt ergänzt (richtig?) :

in der Kontaktformular.php:

Code:
<?php

header('Content-Type: text/html; charset=UTF-8');

$vorname = $_POST['vorname'];
$nachname = $_POST['$nachname']; ............

Eine .htaccess zugefüht mit:

Code:
<?php
AddDefaultCharset UTF-8

Geht noch nichts :-/

EDITH sagt: ich bekomme privat hilfe, danke für die mühe - hat sich dann erledigt.
So behält meine Antwort weiterhin ihren sinnvollen Kontext :p

Mit einem -am Sonntagnachmittag in Rekordzeit (19 minütiges Zeitfenster Posting - EditPosting) engagierten- Privatlehrer im Rücken, wirst Du hoffentlich die Hilfe unseres Forums nicht weiter in Anspruch nehmen, um auf so eine Art und Weise die kostbare (Frei)Zeit der Helfer zu beanspruchen, und für Unruhe in der Community zu sorgen - siehe @bdt600 's Kommentar :(

Hier heisst es zumindest schon mal für Dich: Schicht im Schacht!!!
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben