Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Mr. Magpie ConPresso-Experte

Anmeldungsdatum: 01.01.1970 Beiträge: 995 Wohnort: Wuppertal
|
Verfasst am: 21.03.2016 19:15 Titel: [Gelöst] Umstellung von PHP 5.4 auf PHP 5.6 macht Problem |
|
|
|
Seit der Umstellung auf PHP 5.6 funktioniert die Mail-Kodierung nicht mehr richtig. In den Einstellungen von mod_form habe ich "ISO-8859-1 erzwingen" gewählt und das soll auch so bleiben.
Unter PHP 5.6 erscheinen dann plötlzich die Umlaute im Betreff nicht mehr korrekt und der Mail-Body ist ganz leer. Ausprobiert habe ich es sowohl bei 1&1 als auch bei All-Inkl.
Beispiel einer unter PHP 5.4 generierten Mail: Code: | Return-Path: <info@########.de>
Received: from [217.72.192.67] ([217.72.192.67]) by mx.kundenserver.de
(mxeue104) with ESMTPS (Nemesis) id 0MZySV-1aUcNg1Irv-00LpAE for
<########@########.de>; Mon, 21 Mar 2016 15:10:19 +0100
Received: from dd15816.kasserver.com ([85.13.136.250]) by mx.kundenserver.de
(mxeue104) with ESMTPS (Nemesis) id 0Mg3G9-1aNTW21EsH-00NRie for
<formulartest@########.de>; Mon, 21 Mar 2016 15:10:19 +0100
Received: by dd15816.kasserver.com (Postfix, from userid 1020)
id 5C1F45B8410D; Mon, 21 Mar 2016 15:10:17 +0100 (CET)
To: formulartest@########.de
Subject: Nachricht =?ISO-8859-1?Q?=FCber=20Kontakt-Formular?=
From: formulartest@########.de
Cc:
Reply-To: formulartest@########.de
Content-Type: text/plain; format=flowed; charset="ISO-8859-1"
X-Mailer: mod_form by conpresso4.de
Message-Id: <20160321141017.5C1F45B8410D@dd15816.kasserver.com>
Date: Mon, 21 Mar 2016 15:10:17 +0100 (CET)
Envelope-To: <guenther@########.de>
Folgende Daten wurden am 21.03.2016 um 15:10 Uhr über das Kontakt-Formular von www.########.de übermittelt:
Name: Günther Noch ein Test
E-Mail-Adresse: formulartest@########.de
Telefon:
Mitteilung:
Noch ein Test: äöüÄÖÜ€
| Und mit genau dem selben ins Nachrichten-Feld des Formulars eingegebenen Text unter PHP 5.6: Code: | Return-Path: <info@########.de>
Received: from [212.227.15.41] ([212.227.15.41]) by mx.kundenserver.de
(mxeue008) with ESMTPS (Nemesis) id 0M5dph-1ZpFB52tCa-00xZ9j for
<guenther@########.de>; Mon, 21 Mar 2016 15:14:19 +0100
Received: from dd15816.kasserver.com ([85.13.136.250]) by mx.kundenserver.de
(mxeue008) with ESMTPS (Nemesis) id 0LaEeN-1a43092aXm-00m63d for
<formulartest@########.de>; Mon, 21 Mar 2016 15:14:19 +0100
Received: by dd15816.kasserver.com (Postfix, from userid 1020)
id 566B85B8410D; Mon, 21 Mar 2016 15:14:17 +0100 (CET)
To: formulartest@########.de
Subject: Nachricht =?ISO-8859-1?Q?=3Fber=20Kontakt-Formular?=
From: formulartest@########.de
Cc:
Reply-To: formulartest@########.de
Content-Type: text/plain; format=flowed; charset="ISO-8859-1"
X-Mailer: mod_form by conpresso4.de
Message-Id: <20160321141417.566B85B8410D@dd15816.kasserver.com>
Date: Mon, 21 Mar 2016 15:14:17 +0100 (CET)
Envelope-To: <########@########.de>
|
Im entsprechenden Formulardaten-Artikel erscheinen die Daten richtig - s. Screenshot

Klicken für Originalbild! mod_form.php_5.6.jpg (19.62KB) - 167 mal angeklickt
_________________ Günther Ludwig, amazingBytes webdesign
Referenzen finden Sie hier: amazingBytes webdesign - Referenzen
Zuletzt bearbeitet von Mr. Magpie am 23.03.2016 10:07, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
MarkusR Handbuchversteher

Anmeldungsdatum: 01.01.1970 Beiträge: 6994
|
Verfasst am: 21.03.2016 19:57 Titel: |
|
|
|
Prüfe mal, ob das Formular bei der Eingabe als ISO oder UTF codiert wird.
Die Default-Einstellung von 1&1 bei 5.6 ist leider UTF-8.
_________________ Ciao Markus
ConPresso-Module
ConPresso und PHP 7 |
|
Nach oben |
|
 |
Mr. Magpie ConPresso-Experte

Anmeldungsdatum: 01.01.1970 Beiträge: 995 Wohnort: Wuppertal
|
Verfasst am: 21.03.2016 20:14 Titel: |
|
|
|
Wie finde ich das heraus?
Wenn ich mir im Browser Quelltext bzw. Seiteninformationen der Formularseite ansehe, ist die ISO-8859-1. Eine entsprechende Zeile befndet sich in der ../_include/common.inc.php:
header('Content-type: text/html; charset=ISO-8859-1');
Aber mail() schert sich nicht darum
_________________ Günther Ludwig, amazingBytes webdesign
Referenzen finden Sie hier: amazingBytes webdesign - Referenzen |
|
Nach oben |
|
 |
Mr. Magpie ConPresso-Experte

Anmeldungsdatum: 01.01.1970 Beiträge: 995 Wohnort: Wuppertal
|
Verfasst am: 21.03.2016 20:23 Titel: |
|
|
|
|
|
Nach oben |
|
 |
MarkusR Handbuchversteher

Anmeldungsdatum: 01.01.1970 Beiträge: 6994
|
|
Nach oben |
|
 |
Mr. Magpie ConPresso-Experte

Anmeldungsdatum: 01.01.1970 Beiträge: 995 Wohnort: Wuppertal
|
Verfasst am: 21.03.2016 21:01 Titel: |
|
|
|
Bei 1&1, da gebe ich dir Recht, kann ich den default_charset per php.ini beeinflussen.
Die Betreffzeile wird auch da falsch codiert, aber der Mail-Body enthält wenigstens den richtigen Inhalt.
Nicht so bei All-Inkl. Aber mein Kunde ist nun endlich von der Telekom zu All-Inkl gewechselt und daher muss es jetzt dort irgendwie klappen.
_________________ Günther Ludwig, amazingBytes webdesign
Referenzen finden Sie hier: amazingBytes webdesign - Referenzen |
|
Nach oben |
|
 |
MarkusR Handbuchversteher

Anmeldungsdatum: 01.01.1970 Beiträge: 6994
|
Verfasst am: 21.03.2016 21:05 Titel: |
|
|
|
|
|
Nach oben |
|
 |
Mr. Magpie ConPresso-Experte

Anmeldungsdatum: 01.01.1970 Beiträge: 995 Wohnort: Wuppertal
|
Verfasst am: 21.03.2016 21:09 Titel: |
|
|
|
|
|
Nach oben |
|
 |
MarkusR Handbuchversteher

Anmeldungsdatum: 01.01.1970 Beiträge: 6994
|
Verfasst am: 21.03.2016 21:19 Titel: |
|
|
|
Tja, da helfen dann nur ein Stapel Kontrollausgaben.
Nach Ostern werde ich das mal auf PHP 5.6 und 7 probieren.
1&1 bietet einen verlängerten Support für PHP 5.4.
_________________ Ciao Markus
ConPresso-Module
ConPresso und PHP 7 |
|
Nach oben |
|
 |
Mr. Magpie ConPresso-Experte

Anmeldungsdatum: 01.01.1970 Beiträge: 995 Wohnort: Wuppertal
|
Verfasst am: 21.03.2016 21:26 Titel: |
|
|
|
|
|
Nach oben |
|
 |
MarkusR Handbuchversteher

Anmeldungsdatum: 01.01.1970 Beiträge: 6994
|
Verfasst am: 21.03.2016 21:51 Titel: |
|
|
|
|
|
Nach oben |
|
 |
Mr. Magpie ConPresso-Experte

Anmeldungsdatum: 01.01.1970 Beiträge: 995 Wohnort: Wuppertal
|
Verfasst am: 21.03.2016 21:55 Titel: |
|
|
|
|
|
Nach oben |
|
 |
Mr. Magpie ConPresso-Experte

Anmeldungsdatum: 01.01.1970 Beiträge: 995 Wohnort: Wuppertal
|
Verfasst am: 22.03.2016 00:10 Titel: Gelöst!! |
|
|
|
Ich habe es jetzt gelöst bekommen
Das Problem bestand aus mehreren Teilen:
a) Konnte ich bei All-Inkl die nötigen Einstellungen nicht durch eine php.ini setzen. Die php.ini wurde schlichtweg ignoriert.
b) Die Codierung des Mail-Body erfolgt anders als die der Betreff-Zeile, es brauchte folglich auch zwei verschiedene Lösungen
Zunächst zum Mailbody:
Dieser war unter PHP 5.6 stets komplett leer!!
Daran änderte sich nichts, ganz gleich, welchen Wert $encoding in der Zeile
Code: | $contentType = 'Content-Type: text/plain; format=flowed; charset="'. $encoding . '"' . $newline; |
von ../mod_form/includes/actions.inc.php annahm.
Bald war mir klar, das musste an der default_charset-Einstellung liegen, welche bei mir (All-Inkl) laut phpinfo() immer "no value" hatte.
Hier fand ich, dass ich den default_charset auch über die .htaccess im Root-Verzeichnis von ConPresso setzen konnte.
Ich hab' dann also in die .htaccess die Zeile Code: | php_value default_charset ISO-8859-1 | eingefügt... und schon ging's!
Die Betreffzeile:
Wie Markus erwähnte, wird diese per mb_encode_mimeheader() codiert.
Wenn ich diese Funktion in ../mod_form/includes/actions.inc.php ganz weg ließ, blieb die Betreffzeile uncodiert, aber alle Umlaute blieben erhalten (getestet in Thunderbird).
In php.net las ich hier, dass die Funktion mb_encode_mimeheader() abhängig ist von einem korrekt gesetzten Wert von mbstring.internal_encoding. Auch diese Einstellung hatte bei All-Inkl "no value".
Diesen setzte ich nun analog zum default_charset in der .htaccess-Datei: Code: | php_value mbstring.internal_encoding ISO-8859-1 |
Bingo - das war's!!
_________________ Günther Ludwig, amazingBytes webdesign
Referenzen finden Sie hier: amazingBytes webdesign - Referenzen |
|
Nach oben |
|
 |
Mr. Magpie ConPresso-Experte

Anmeldungsdatum: 01.01.1970 Beiträge: 995 Wohnort: Wuppertal
|
|
Nach oben |
|
 |
|