Darstellungsproblem in "mailsend2friend"

In this board you can talk about general questions about phpMyFAQ

Moderator: Thorsten

Post Reply
nino
Posts: 81
Joined: Tue Jul 13, 2004 1:13 pm
Location: Bern

Darstellungsproblem in "mailsend2friend"

Post by nino »

Hallo

Wir "missbrauchen" die Funktion "Artikel weiterempfehlen" als Feedbackformular für konkrete FAQ-Einträge, da der Vorteil darin besteht, dass der Artikel direkt aufgerufen werden kann und im Feld "zusätzliche Nachricht..." ein Fehlerbeschrieb angegeben werden kann.

Nun ist mir aufgefallen, dass ich folgendes Darstellungsproblem im Mail habe:

Code: Select all

Und jetzt nochmals mit iso-irgendwas. Umbrüche:\r\n\r\n\r\nSonderzeichen:\r\nöäü
Das heisst, die Umlaute werden falsch dargestellt und die manuellen Zeilenumbrüche werden als \r\n angegeben.

Das mit den Sonderzeichen konnte ich durch "hartcodieren" von iso-8859-1 in der send2friend.php lösen (ich weiss, ist nicht gerade schön, aber ich musste aus anderen Gründen die lang_de auf utf-8 stellen). Dadurch werden jetzt die Umlaute im Zusatztext korrekt im Mail dargestellt.

Hingegen weiss ich nicht, wie das mit den Umbrüchen hinzukriegen ist, denn die werden mit utf-8 oder iso-8859-1 identisch als \r\n dargestellt. Oder ist das Einfügen von manuellen Zeilen- oder Abschnittsumbrüchen in diesem kleinen Textfeld nicht vorgesehen?

Besten Dank für einen gelegentlichen Hinweis. Pressiert nicht.

Gruss, Nino
Thorsten
Posts: 15560
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Post by Thorsten »

Hi,

wie sehen eure Änderungen ein?

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
nino
Posts: 81
Joined: Tue Jul 13, 2004 1:13 pm
Location: Bern

Post by nino »

Hallo Thorsten

Ich bin nicht sicher ob ich Deine Frage richtig verstehe, aber hier folgende Infos:

Die FAQ wird ausschliesslich intern von momentan einer Gruppe von 14 Personen genutzt (HelpDesk) und zwar ausschliesslich auf deutsch. Der Client ist XP mit Internet Explorer 6.0 od. 7.0. Andere Browser sind offiziell nicht zugelassen.

Systeminformationen:
System Information
phpMyFAQ Version phpMyFAQ 2.0.7
Server Software Apache
PHP Version PHP 5.2.5
Register Globals off
Safe Mode off
Open Basedir off
Database Server Mysql
Database Client Version 5.0.45
Database Server Version 5.0.45
Webserver Interface APACHE2HANDLER
PHP Extensions xmlwriter, libxml, dom, xmlreader, xml, tokenizer, session, pcre, SimpleXML, SPL, PDO, soap, SQLite, standard, Reflection, posix, pdo_sqlite, mysqli, mysql, mssql, mbstring, ldap, json, imap, iconv, hash, gettext, gd, ftp, filter, date, curl, ctype, bcmath, zlib, apache2handler
Anschliessend folgende Änderung in der language_de.php:

Code: Select all

Original
Zeile 24: $PMF_LANG["metaCharset"] = "iso-8859-1";

Geändert:
Zeile 24: $PMF_LANG["metaCharset"] = "utf-8";
Dies war meine (schnelle) Lösung zum Problem, dass sonst alle Umlaute und Sonderzeichen in der gesamten FAQ falsch ausgegeben wurden.

Danach folgende Änderung in der send2friend.php

Code: Select all

Original:
Zeile49:      'send2friend_text' => PMF_htmlentities($PMF_CONF['main.send2friendText'], ENT_QUOTES, $PMF_LANG['metaCharset']),

Geändert:
Zeile 49:     'send2friend_text' => PMF_htmlentities($PMF_CONF['main.send2friendText'], ENT_QUOTES, $PMF_LANG['iso-8859-1']),
Dies Änderung habe ich heute vorgenommen und damit werden die Umlaute im Mailtext wieder korrekt angezeigt, jedoch nicht die Zeilenumbrüche. Dort habe ich (zumindest bewusst) nichts verändert.

Soeben hatte ich noch eine Idee. Habe versucht, eine Message via das Kontakt-Formular zu senden. Dies sind unveränderte Dateien und siehe da, Sonderzeichen, Umbrüche etc. funktionieren im Kontaktformular ohne weiteres normal. Ich habe probiert die beiden php-files miteinander zu vergleichen, aber ich kann als "PHP-Halbanalphabet" das entscheidende Detail nicht finden. Ich vermute, dass das send2friend.php einfach strenger mit den Mails umgeht aus Sicherheitsgründen.

Gruss

Nino
Thorsten
Posts: 15560
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Post by Thorsten »

Hi,

das muss so aussehen:

Code: Select all

Geändert:
Zeile 49:     'send2friend_text' => PMF_htmlentities($PMF_CONF['main.send2friendText'], ENT_QUOTES, 'iso-8859-1'),
bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
nino
Posts: 81
Joined: Tue Jul 13, 2004 1:13 pm
Location: Bern

Post by nino »

Hallo Thorsten

Danke für Deine Antwort.

Leider klappt es auch mit Deiner Lösung nicht. Gestern hatte es zumindest mit den Sonderzeichen noch funktioniert und heute will es, egal welche Syntax ich verwende, nicht mehr klappen, d.h. Sonderzeichen und Zeilenumbrüche sind nicht lesbar.

Gruss

Nino
Thorsten
Posts: 15560
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Post by Thorsten »

Hi,

ändere mal in der mailsend2friend.php in der Zeile 41 den Code zu

Code: Select all

$attached = strip_tags($_POST["zusatz"]);
bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
nino
Posts: 81
Joined: Tue Jul 13, 2004 1:13 pm
Location: Bern

Post by nino »

Hallo Thorsten

Vielen Dank für Deine Antwort.

Wir kommen der Sache näher. Die Zeilenumbrüche werden nun nach der Aenderung in der mailsend2friend.php korrekt umgesetzt.

Hingegen erhalte ich immer noch Zeichenschrott bei den Umlauten. Ich habe jetzt beide Varianten der Zeile 49 in der send2friend.php getestet, d.h.

Code: Select all

'send2friend_text' => PMF_htmlentities($PMF_CONF['main.send2friendText'], ENT_QUOTES, $PMF_LANG['iso-8859-1']),

oder

'send2friend_text' => PMF_htmlentities($PMF_CONF['main.send2friendText'], ENT_QUOTES, 'iso-8859-1'),
Das Mail wird nur korrekt verschickt, wenn ich in der language_de.php anstelle utf-8 den Eintrag auf iso-8859-1 festlege, die Original send2friend.php benutze und die von Dir vorgeschlagene Aenderung an Zeile 41 in der mailsend2friend.php vornehme.

Ich muss aber die language_de.php in utf-8 haben, sonst ist die FAQ unlesbar.

Hast Du eventuell noch einen letzten Hinweis, wie ich diese iso-8859-1 Codierung ins Mail bringe?

Sonst bringe ich halt einen Hinweis an, dass keine Umlaute verwendet werden sollen :?

Vielen Dank auf jeden Fall für den bisherigen Support. Ich möchte nochmals explizit darauf hinweisen, dass ich das sehr schätze und es nicht selbstverständlich ist.

Gruss, Nino
Thorsten
Posts: 15560
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Post by Thorsten »

Hi,

das mit den Umbrüchen ist schon mal schön zu hören... dann versuche das mal:

Code: Select all

'send2friend_text' => PMF_htmlentities($PMF_CONF['main.send2friendText']),
Das mit dem $PMF_LANG['iso-8859-1'] müsste aber eine PHP Notice werfen...

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
nino
Posts: 81
Joined: Tue Jul 13, 2004 1:13 pm
Location: Bern

Post by nino »

Hi Thorsten

Sorry, war heute ziemlich beschäftigt und komme erst jetzt dazu, Deinen Vorschlag zu testen. Leider negativ, d.h. Umbrüche sind ok aber die Umlaute kommen immer noch in utf-8 Manier daher.

Eine PHP Notice oder sonstige Fehlermeldungen habe ich nirgends sehen können. Müsste doch im Browser ersichtlich sein oder verstehe ich das falsch?

Gruss, Nino
Thorsten
Posts: 15560
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Post by Thorsten »

Hi,

schau mal bitte in die mailsen2friend.php Datei, Zeile 52, und ändere die Zeile dort in

Code: Select all

utf8_decode($PMF_CONF["main.send2friendText"])."\r\n\r\n".$PMF_LANG["msgS2FText2"]."\r\n".$link."\r\n\r\n".$attached,
bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
nino
Posts: 81
Joined: Tue Jul 13, 2004 1:13 pm
Location: Bern

Post by nino »

Hallo Thorsten

Habe Deinen letzten Änderungsvorschlag in der mailsend2friend.php umgesetzt. Die Sonderzeichen sind immer noch nicht lesbar.

Allerdings frage ich mich bald, ob es ein Problem des Mailclients (Outlook 2002) ist, dass er das Mail als "Western European ISO" ansieht. Ich kann das Encoding pro Mail manuell in Outlook auf UTF-8 ändern und der Text ist dann problemlos lesbar.

Ich will Dich nicht weiter mit diesem (von mir hausgemachten?) Problem belästigen. Ohnehin werde ich jetzt eine Woche abwesend sein.

Vielen Dank für alle Deine Bemühungen.

Gruss, Nino
Post Reply