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

trotz utf-8 keine ä, ö, ü, ß, ...

Status
Für weitere Antworten geschlossen.

luleschamba

Neues Mitglied
hallo forengemeinde,

ich benutze folgenden html-anfang:

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[URL]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/URL]">
<html xmlns="[url=http://www.w3.org/1999/xhtml]XHTML namespace[/url]">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ferienwohnung für die Katz</title>
<style type="text/css" media="screen">
 @import url("style.css");
 
</style>
</head>

damit werden beim normalen betrachten die sonderzeichen
in den browsern ff2 und ie7 auch normal dargestellt. soweit
ist also alles in ordnung.

allerdings klappt die "weiterverarbeitung" überhaupt nicht und
ich glaube, ich mache irgendetwas falsch, worauf ich aber
leider überhaupt nicht komme.

1. ich benutze einen paypal-button mit drop-down-auswahl.
wenn dieser geklickt wird, werden die ganzen sonderzeichen
nicht übernommen/mitgenommen und auf der paypal-seite
falsch dargestellt, wie z.b. so: Ãœber, ...

2. bei dem kontaktformular per php passiert genau dasselbe
und mein php-skript ist sehr simpel. bei einer anderen website
funktioniert es zumindest auch ohne diese sonderzeichenprobleme.

Code:
<?
// ############ Hier Deine E-Mail-Adresse eintragen
$GLOBALS["mail_address"] = [EMAIL="[email protected]"][email protected][/EMAIL];
// ############ Hier steht der Antworttext fr den Sender des Formulars an seine angegebene E-Mail-Adresse
$GLOBALS["MailAntwortSender"] = "Vielen Dank für dein Interesse.";
// ############ Hier eintragen, ob eine E-Mail an der Sender als Antwort geschickt werden soll 'Yes' 0der 'No'
$GLOBALS["MailBoolean"] = "Yes";
// ############ Hier steht der Danketext für die HTML-Seite
$GLOBALS["DankeTextHTML"] = "Vielen Dank für dein Interesse. Bitte, kontrolliere auch dein Spam-Verzeichnis, da automatisch generierte E-Mails gelegentlich als Spam gedeutet werden.";
 

function mailRequest($mail_address,$mail_subject,$mail_content) {
 @mail($mail_address,$mail_subject,$mail_content);
}
 
// ############ Hier die gelisteten Mail-Daten, die an Dich versendet werden
$mailmsg = "Übermittelte Daten aus dem Kontaktformular: \n
Anrede: ".$_REQUEST["Anrede"]."
Vorname: ".$_REQUEST["Vorname"]."
Name: ".$_REQUEST["Name"]."
E-Mail: ".$_REQUEST["Mail"]."
Telefon: ".$_REQUEST["Telefon"]."
Adresse: ".$_REQUEST["Adresse"]."
PLZ/Ort: ".$_REQUEST["Ort"]."\n
Betreff: ".$_REQUEST["Betreff"]."\n
Nachricht: \n".$_REQUEST["Nachricht"]."
";
   
   
   // ########### E-Mail an Dich
   mailRequest($GLOBALS["mail_address"],$_REQUEST["Betreff"],$mailmsg);
   // ########### Antwort-E-Mail an den Sender
   if($GLOBALS["MailBoolean"] == "Yes") {
    mailRequest($_REQUEST["Mail"],$_REQUEST["Betreff"],$GLOBALS["MailAntwortSender"]);
   }
 

?>

kann mir jemand bei den zwei punkten helfen? diese kaputten
zeichen sehen einfach nicht schön aus. :(

liebe grüße
lules
 
Werbung:
Schreib die Umlaute mal als &uuml; (ü) - &Uuml; (Ü) etc. (gleiches Muster für die anderen).

ß als &szlig;
 
Du verwendest utf-8 als Zeichensatz. Folglich werden in Formularen auch utf-8-Zeichen übermittelt. Um diese in der E-Mail korrekt darzustellen musst du entweder

a) die E-Mail mit utf-8-Kodierung verschicken (was jedoch bei älteren Outlooks zu Problemen führen kann)

oder

b) die utf-8-Zeichen aus den Formularfeldern dekodieren. Beispiel:
Code:
utf8_decode($_REQUEST["Anrede"])
Beim PayPal-Problem das selbe: du musst die Zeichen dekodieren und als HTML-Zeichen als PayPal übergeben da die PayPal-Seite vermutlich kein utf-8 als Zeichensatz verwendet.

Code:
htmlentities(utf8_decode($_REQUEST["Anrede"]))
 
Werbung:
danke schon einmal

vielen dank euch schon einmal für die erste hilfe.

maxi>> das wäre mein absolut letzter schritt gewesen,
da ich dachte, dafür sei doch dieses utf-8-ding da. :-/

threadi>> da ich mich mit php kaum bis gar nicht auskenne,
frage ich dich mal nach der a)-lösung, da sie sich irgendwie
leichter anhört und ich auch vista und aktuelles outlook
verwenden möchte. was muss ich denn in das php-formular
oder die html-datei (form) eintragen, damit es per utf-8-
kodierung versendet wird?

zu paypal: hm, ja, das wird dann wohl recht schwer, da ich
auch nicht so richtig ahnung habe, wie dieser button funzt.
ich kann ja mal den code zeigen. vielleicht habe ich glück
und das lässt sich leicht in diese htmlentities packen, die
du da genannt hast. danke dir noch einmal für die nette
kompetente hilfe.

paypal-button:
Code:
<form action="[URL]https://www.paypal.com/cgi-bin/webscr[/URL]" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="IHSDLCSD4HSLDF">
<input type="hidden" name="lc" value="DE">
<input type="hidden" name="item_name" value="Übernahme">
<input type="hidden" name="no_shipping" value="2">
<input type="hidden" name="rm" value="1">
<input type="hidden" name="currency_code" value="EUR">
<input type="hidden" name="bn" value="PP-BuyNowBF:btn_paynow_SM.gif:NonHosted">
<table>
<tr><td><input type="hidden" name="on0" value="Übernahme">Übernahme</td></tr><tr><td><select name="os0">
 <option value="1 UE (a 95) + ER (20) =">1 UE (a 95) + ER (20) = €115,00
 <option value="2 UE (a 95) + ER (20) =">2 UE (a 95) + ER (20) = €210,00
 <option value="3 UE (a 95) + ER (20) =">3 UE (a 95) + ER (20) = €305,00
 <option value="4 UE (a 95) + ER (20) =">4 UE (a 95) + ER (20) = €400,00
 <option value="5 UE (a 95) + ER (20) =">5 UE (a 95) + ER (20) = €495,00
 <option value="6 UE (a 95) + ER (20) =">6 UE (a 95) + ER (20) = €590,00
 <option value="7 UE (a 95) + ER (20) =">7 UE (a 95) + ER (20) = €685,00
 <option value="8 UE (a 95) + ER (20) =">8 UE (a 95) + ER (20) = €780,00
 <option value="9 UE (a 95) + ER (20) =">9 UE (a 95) + ER (20) = €875,00
 <option value="10 UE (a 95) + ER (20) =">10 UE (a 95) + ER (20) = €970,00
</select> </td></tr>
</table>
<input type="hidden" name="currency_code" value="EUR">
<input type="hidden" name="option_select0" value="1 UE (a 95) + ER (20) =">
<input type="hidden" name="option_amount0" value="115.00">
<input type="hidden" name="option_select1" value="2 UE (a 95) + ER (20) =">
<input type="hidden" name="option_amount1" value="210.00">
<input type="hidden" name="option_select2" value="3 UE (a 95) + ER (20) =">
<input type="hidden" name="option_amount2" value="305.00">
<input type="hidden" name="option_select3" value="4 UE (a 95) + ER (20) =">
<input type="hidden" name="option_amount3" value="400.00">
<input type="hidden" name="option_select4" value="5 UE (a 95) + ER (20) =">
<input type="hidden" name="option_amount4" value="495.00">
<input type="hidden" name="option_select5" value="6 UE (a 95) + ER (20) =">
<input type="hidden" name="option_amount5" value="590.00">
<input type="hidden" name="option_select6" value="7 UE (a 95) + ER (20) =">
<input type="hidden" name="option_amount6" value="685.00">
<input type="hidden" name="option_select7" value="8 UE (a 95) + ER (20) =">
<input type="hidden" name="option_amount7" value="780.00">
<input type="hidden" name="option_select8" value="9 UE (a 95) + ER (20) =">
<input type="hidden" name="option_amount8" value="875.00">
<input type="hidden" name="option_select9" value="10 UE (a 95) + ER (20) =">
<input type="hidden" name="option_amount9" value="970.00">
<input type="hidden" name="option_index" value="0">
<input type="image" src="[URL]https://www.paypal.com/de_DE/DE/i/btn/btn_paynow_SM.gif[/URL]" border="0" name="submit" alt="">
<img alt="" border="0" src="[URL]https://www.paypal.com/de_DE/i/scr/pixel.gif[/URL]" width="1" height="1">
</form>
 
was muss ich denn in das php-formular
oder die html-datei (form) eintragen, damit es per utf-8-
kodierung versendet wird?

Den PHP-Code zum Versenden der E-Mail anpassen. Verwendet wird die Funktion mail(): PHP: mail - Manual
Beispiel für den Versand einer utf-8-Mail darüber:
Code:
mail($Empfaenger, $title, $message, 'From: Absender <[email protected]>'."\r\n".'Content-Type: text/plain; charset=UTF-8');

In deinem Fall müsstest du das

Code:
@mail($mail_address,$mail_subject,$mail_content);

durch das ersetzen:

Code:
@mail($mail_address,$mail_subject,$mail_content,'Content-Type: text/plain; charset=UTF-8');

Ungetestet! Hängt meines Wissens auch von der Serverkonfiguration ab.

Bei PayPal ist die Frage was auf der PayPal-Seite falsch dargestellt wird. Bis auf das Wort "Übernahme" sehe ich in dem Code von dir keine anderen Sonderzeichen. "Übernahme" müsstest Du nur durch "&Uuml;bernahme" ersetzen.
 
halbe lösung

Code:
@mail($mail_address,$mail_subject,$mail_content,'Content-Type: text/plain; charset=UTF-8');

Ungetestet! Hängt meines Wissens auch von der Serverkonfiguration ab.

das hat also schon einmal funktioniert. vista und windows mail haben die e-mail korrekt dargestellt. danke dir sehr dafür.


threadi schrieb:
Bei PayPal ist die Frage was auf der PayPal-Seite falsch dargestellt wird. Bis auf das Wort "Übernahme" sehe ich in dem Code von dir keine anderen Sonderzeichen. "Übernahme" müsstest Du nur durch "&Uuml;bernahme" ersetzen.

ja, da blicke ich auch nicht so ganz durch. ich kann mir nicht vorstellen, dass man auf der paypal-website, wo man den button erstellt, tatsächlich &Uuml;, ... etc. in den eingabefeldern verwenden soll. wäre ja sehr kundenunfreundlich. im html-dokument habe ich es schon verändert, aber es wird immer noch fehlerhaft auf der paypal-seite angezeigt, wenn man den zahlen-button gedrückt hat. sehr seltsam. :-/

Code:
<form action="[URL]https://www.paypal.com/cgi-bin/webscr[/URL]" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="xkoljdlsdjkfds2d">
<input type="hidden" name="lc" value="DE">
<input type="hidden" name="item_name" value="&Uuml;bernahme
<input type="hidden" name="cn" value="Mitteilung">
<input type="hidden" name="no_shipping" value="2">
<input type="hidden" name="rm" value="1">
<input type="hidden" name="currency_code" value="EUR">
<input type="hidden" name="bn" value="PP-BuyNowBF:btn_paynow_SM.gif:NonHosted">
<table>
<tr><td><input type="hidden" name="on0" value="&Uuml;bernahme">&Uuml;bernahme</td></tr><tr><td><select name="os0">
 <option value="1 UE (a 95) + ER (20) =">1 UE (a 95) + ER (20) = €115,00
 <option value="2 UE (a 95) + ER (20) =">2 UE (a 95) + ER (20) = €210,00
 <option value="3 UE (a 95) + ER (20) =">3 UE (a 95) + ER (20) = €305,00
 <option value="4 UE (a 95) + ER (20) =">4 UE (a 95) + ER (20) = €400,00
 <option value="5 UE (a 95) + ER (20) =">5 UE (a 95) + ER (20) = €495,00
 <option value="6 UE (a 95) + ER (20) =">6 UE (a 95) + ER (20) = €590,00
 <option value="7 UE (a 95) + ER (20) =">7 UE (a 95) + ER (20) = €685,00
 <option value="8 UE (a 95) + ER (20) =">8 UE (a 95) + ER (20) = €780,00
 <option value="9 UE (a 95) + ER (20) =">9 UE (a 95) + ER (20) = €875,00
 <option value="10 UE (a 95) + ER (20) =">10 UE (a 95) + ER (20) = €970,00
</select> </td></tr>
</table>
<input type="hidden" name="currency_code" value="EUR">
<input type="hidden" name="option_select0" value="1 UE (a 95) + ER (20) =">
<input type="hidden" name="option_amount0" value="115.00">
<input type="hidden" name="option_select1" value="2 UE (a 95) + ER (20) =">
<input type="hidden" name="option_amount1" value="210.00">
<input type="hidden" name="option_select2" value="3 UE (a 95) + ER (20) =">
<input type="hidden" name="option_amount2" value="305.00">
<input type="hidden" name="option_select3" value="4 UE (a 95) + ER (20) =">
<input type="hidden" name="option_amount3" value="400.00">
<input type="hidden" name="option_select4" value="5 UE (a 95) + ER (20) =">
<input type="hidden" name="option_amount4" value="495.00">
<input type="hidden" name="option_select5" value="6 UE (a 95) + ER (20) =">
<input type="hidden" name="option_amount5" value="590.00">
<input type="hidden" name="option_select6" value="7 UE (a 95) + ER (20) =">
<input type="hidden" name="option_amount6" value="685.00">
<input type="hidden" name="option_select7" value="8 UE (a 95) + ER (20) =">
<input type="hidden" name="option_amount7" value="780.00">
<input type="hidden" name="option_select8" value="9 UE (a 95) + ER (20) =">
<input type="hidden" name="option_amount8" value="875.00">
<input type="hidden" name="option_select9" value="10 UE (a 95) + ER (20) =">
<input type="hidden" name="option_amount9" value="970.00">
<input type="hidden" name="option_index" value="0">
<input type="image" src="[URL]https://www.paypal.com/de_DE/DE/i/btn/btn_paynow_SM.gif[/URL]" border="0" name="submit" alt="">
<img alt="" border="0" src="[URL]https://www.paypal.com/de_DE/i/scr/pixel.gif[/URL]" width="1" height="1">
</form>

vielleicht gibt es dafür auch keine lösung und ich muss tatsächlich zum ue greifen? narf
 
Werbung:
im html-dokument habe ich es schon verändert, aber es wird immer noch fehlerhaft auf der paypal-seite angezeigt,

"es"? Welches "es"? Es muss doch irgendein Wort sein was falsch dargestellt wird?

Ansonsten hast du hier auch noch einen Fehler eingebaut:

Code:
<form action="[URL]https://www.paypal.com/cgi-bin/webscr[/URL]" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="xkoljdlsdjkfds2d">
<input type="hidden" name="lc" value="DE">
<input type="hidden" name="item_name" value="&Uuml;bernahme[COLOR=Red]">[/COLOR]
<input type="hidden" name="cn" value="Mitteilung">
Das rot markierte fehlte.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben