php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.06.2008, 21:51  
Benutzer
 
Registriert seit: 12.05.2008
Beiträge: 30
PHP-Kenntnisse:
Fortgeschritten
cuep befindet sich auf einem aufstrebenden Ast
Standard Umlaute in Formular

Hallo zusammen,

Habe folgendes Problem.
Ich habe ein Formular, was ein Textarea enthält.
Das Formular funktioniert soweit, nur das alles was mit Umlauten zu tun hat nicht richtig ankommt. Hat wahrscheinlich was mit UTF8 oder iso 8859-1 zu tun, soweit ich schon im I-Net gelesen habe. Leider habe ich keine Lösung gefunden.Zumindestens keine die funktioniert.

So kommen die Sonderzeichen nach abschicken der mail an:

Ä = Ä
ä = ä
Ö = Ö
ö = ö
Ü = Ü
ü = ü

Was kann man da am besten machen?

Gruß

CueP
cuep ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.06.2008, 21:57  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Zitat von cuep Beitrag anzeigen
ä = ä
Wen Du ein in utf-8 codiertes ä als latin-1 ausgeben läßt, wird ä angezeigt. Also ja, Du hast eine utf-8 Eingabe vom Formular und die Mail ist iso 8859-1.
Du kannst entweder
- den Browser auffordern, latin-1 zu senden
- die Eingabedaten utf-8 -> latin-1 konvertieren
- die Mail als utf-8 codiert markieren
Wie wird die Mail erzeugt?
David ist offline  
Alt 07.06.2008, 22:05  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Du musst alles nur Erdenkliche auf UTF-8 stellen. Dann dürfte es gehen.
Eine andere sehr unschöne Methode wäre sonst noch die Symptombekämpfung mittels utf8_decode(), aber versuche lieber, sowohl die Eingabe-, als auch die Ausgabeseite sowie die Datenbankverbindung (falls vorhanden) auf UTF-8 zu stellen. Auch die HTML- und PHP-Dateien selbst solltest du mit UTF-8 speichern. Eine versendete Mail muss im Content-Type auch UTF-8 stehen haben (wie David schon schrieb).
Manko10 ist offline  
Alt 07.06.2008, 22:07  
Benutzer
 
Registriert seit: 12.05.2008
Beiträge: 30
PHP-Kenntnisse:
Fortgeschritten
cuep befindet sich auf einem aufstrebenden Ast
Standard

Danke für die schnelle Antwort.
Was genau meinst du mit, "wie wird die Mail erzeugt".
Ich habe ein formular.php Datei die, die Daten über die
mail() Funktion versendet.
Kannst du mir ein Link oder eine Anweisung hier schreiben, weil leider kann ich mit den Möglichkeiten die du genannt hast nicht soviel anfangen.

PS: Eine Datenbankverbindung gibt es nicht.

Danke

Gruß

CueP
cuep ist offline  
Alt 07.06.2008, 22:14  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Ich habe ein formular.php Datei die, die Daten über die
mail() Funktion versendet.
Werden da irgendwelche header gesetzt? Wie sieht die Code-Zeile mit mail() aus?

Bei SwiftMailer setze ich einfach das Charset über eine Methode des Nachrichten-Objekts
Zitat:
Zitat von http://www.swiftmailer.org/wikidocs/v3/composition/headers
Equally, if your headers are not in UTF-8 or ISO-8859-1 character format, you will need to specify the character set using setCharset():
Code:
$message =& new Swift_Message();
$message->headers->setCharset("windows-874");
David ist offline  
Alt 07.06.2008, 22:14  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Die Funktion mail() hat einen Parameter $headers. In diesem kannst due verschiedene Mail-Header, getrennt durch zeilenumbrüche angeben (ich denke, das kennst du - ansonsten hilft PHP.net dir gerne weiter).
Hier musst du unter anderem auch den Header Content-Type angeben:
Code:
"Content-Type: text/plain; Charset=UTF-8\n"
bzw.
Code:
"Content-Type: text/html; Charset=UTF-8\n"
für HTML-Mails (ich hoffe doch, du bist keiner dieser HTML-Mail-Anhänger ).

Edit:
Zu langsam, aber wenigstens habe ich nicht exakt das gleiche geschrieben.
Manko10 ist offline  
Alt 07.06.2008, 22:20  
Benutzer
 
Registriert seit: 12.05.2008
Beiträge: 30
PHP-Kenntnisse:
Fortgeschritten
cuep befindet sich auf einem aufstrebenden Ast
Standard

Ich werde eure beiden Varianten mal probieren.
Ja ich habe in der Mail Funktion einen header wo auch
"Content-Type: text/plain; Charset=UTF-8\n" drinne steht. Geht damit auch nicht. Wie gesagt werde es mal probieren und mich aufjedenfall nochmal melden.
@Manko10 Lieber zu spät als nie

Gruß

CueP
cuep ist offline  
Alt 07.06.2008, 22:25  
Benutzer
 
Registriert seit: 12.05.2008
Beiträge: 30
PHP-Kenntnisse:
Fortgeschritten
cuep befindet sich auf einem aufstrebenden Ast
Standard

Die mail() sieht so aus

Code:
mail($email,$betreff,$message,$header);
Leider geht das was bisher vorgeschlagen wurde nicht!
Habe auch was gelesen das man bei
<form action... noch was mit accept-chars eintragen kann würde das was bringen?

Gruß

CueP
cuep ist offline  
Alt 07.06.2008, 22:27  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Nein, ich denke nicht.
Was wir noch wissen wollen:

welchen Inhalt hat die Variablen $headers? Mit welchem Zeichensatz wird die Formularseite angezeigt (bitte nicht nur auf das META-Tag schauen, sondern wirklich (im Firefox) unter Ansicht->Zeichenkodierung).
Manko10 ist offline  
Alt 07.06.2008, 22:28  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Zitat von cuep Beitrag anzeigen
Leider geht das was bisher vorgeschlagen wurde nicht!
Also irgendwie glaube ich nicht, dass Du so schnell SwiftMailer ausprobiert hast
Content-type funktioniert nur bei Mime-Mails. Vielleicht gibt es auch Mail-Programme, die den Content-type/charset auch ohne MIME-Ankündigung akzeptieren, Thunderbird scheint das schon mal nicht zu tun.
David ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP: Formular Generator Zergling-new Tutorials 16 06.07.2010 03:14
Umlaute und MySQL4.1 Datenbanken 2 15.11.2009 15:28
Formular Pflichtfelder für Frontpage Formular erstellen Caruso JavaScript, Ajax und mehr 5 21.06.2008 09:17
Wert aus Textfeld in neues Formular übernehmen (kein Submit) PsychoEagle HTML, Usability und Barrierefreiheit 9 02.01.2007 14:51
Umlaute bei Linux flual2000 PHP Tipps 2006 10 28.04.2006 13:12
formular includen samspa5 PHP Tipps 2006 13 18.03.2006 11:37
[Erledigt] Formular in Formular HTML, Usability und Barrierefreiheit 4 19.10.2005 12:18
Umlaute flual2000 PHP Tipps 2005-2 1 23.08.2005 10:59
[Erledigt] PHP Formular ~~wichtig~~ PHP Tipps 2005 27 29.05.2005 19:38
Formular --> Ergebnis auf anderer Seite anzeigen Jojo1 PHP Tipps 2005 58 01.02.2005 17:13
Im Formular user abfragen? Datenbanken 3 06.01.2005 10:51
Formular nach UPDATE anzeigen PHP Tipps 2004-2 5 22.12.2004 02:06
[Erledigt] Daten in einem Formular ausgeben und ändern PHP Tipps 2004-2 7 07.12.2004 17:22
Wie implementiere ich mein Email Formular? PHP Tipps 2004-2 2 14.11.2004 17:02
[Erledigt] Daten in neuem Formular anzeigen PHP Tipps 2004 6 21.07.2004 10:44

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
umlaute formular absenden, php formular mit umlauten mail(), swiftmailer text/plain zeilenumbruch

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:05 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum