Newsletter 4.8.11 Sonderzeichen in der Adresse

Gesperrt
Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Newsletter 4.8.11 Sonderzeichen in der Adresse

Beitrag von Beleuchtfix » Sa 14. Feb 2009, 22:11

Hallo,

Bei meinem Newsletter habe ich eine Adresse x+y@zzz.de. Diese Adresse wird als fehlerhaft beanstandet. Ich denke einmal, das das + nicht richtig geprüft wird, kann aber leider den Code nicht finden, an dem dies angepasst werden müsste.

Habt ihr einen Tipp, wo (und evtl auch gleich wie) ich das ändern muss?

Gruß
Florian

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Newsletter 4.8.11 Sonderzeichen in der Adresse

Beitrag von xmurrix » So 15. Feb 2009, 13:49

Hallo Florian,
Beleuchtfix hat geschrieben:...
Bei meinem Newsletter habe ich eine Adresse x+y@zzz.de. Diese Adresse wird als fehlerhaft beanstandet. Ich denke einmal, das das + nicht richtig geprüft wird, kann aber leider den Code nicht finden, an dem dies angepasst werden müsste.

Habt ihr einen Tipp, wo (und evtl auch gleich wie) ich das ändern muss?...
die Validierung der E-Mail Adresse beim Contenido Modul "Newsletter_Handler" findet in der Funktion isValidMail() statt, die Funktion findest du in der in der Datei contenido/includes/functions.general.php ab Zeile 730.

So, wie ich das sehe, wird die Funktion nicht mit der Strict-Option aufgerufen, um die Validierung kümmert sich dann die Zeile 754

Code: Alles auswählen

		return preg_match("/^[0-9a-z]([-_.]*[0-9a-z]*)*@[a-z0-9-]+\.([a-z])/i", $sEMail);
und darin wird das Vorkommen eines +-Zeichens nicht unterstützt.

Dein Problem mit der E-Mail x+y@zzz.de sollte sich lösen, wenn du in der Modulausgabe die Überprüfung auf strict umstellst, also der Funktion isValidMail() jeweils den 2. Parameter true übergibst.
Sehe gerade, dass da in der Funktion isValidMail() noch ein Kleinigkeit zu korrigieren ist, die Zeile 752 von

Code: Alles auswählen

		return preg_match('/^' . $$sLocalRegEx . '@' . $sDomainRegEx . $sTLDRegEx . '$/i', $sEMail);
in

Code: Alles auswählen

		return preg_match('/^' . $sLocalRegEx . '@' . $sDomainRegEx . $sTLDRegEx . '$/i', $sEMail);
ändern, dann sollte es klappen.

Alternativ lässt sich auch die RegEx in Zeile 754 um das +-Zeichen erweitern:

Code: Alles auswählen

		return preg_match("/^[0-9a-z]([-_.+]*[0-9a-z]*)*@[a-z0-9-]+\.([a-z])/i", $sEMail);
Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Re: Newsletter 4.8.11 Sonderzeichen in der Adresse

Beitrag von Beleuchtfix » Mo 16. Feb 2009, 03:38

Hallo und Danke, das war es. :D
ich habe mich für die Zeile 754 entschieden.
Gruß
Florian

Gesperrt