Seite 1 von 1

Newsletter 4.8.11 Sonderzeichen in der Adresse

Verfasst: Sa 14. Feb 2009, 22:11
von Beleuchtfix
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

Re: Newsletter 4.8.11 Sonderzeichen in der Adresse

Verfasst: So 15. Feb 2009, 13:49
von xmurrix
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

Re: Newsletter 4.8.11 Sonderzeichen in der Adresse

Verfasst: Mo 16. Feb 2009, 03:38
von Beleuchtfix
Hallo und Danke, das war es. :D
ich habe mich für die Zeile 754 entschieden.
Gruß
Florian