Problem mit E-Mail-Check unter PHP 7.3.5? (Bugs)

by Taurec, Monday, July 15, 2019, 20:42 (1746 days ago)

Hallo!

Ich habe heute meine Seite testweise auf PHP 7.3.5 umgestellt. Augenscheinlich hat die Forumssoftware einwandfrei funktioniert, bis ich Rückmeldungen bekam, daß Gastschreiber die Meldung "E-Mail-Adresse ungültig" bekamen, wenn sie eine E-Mailadresse im Beitragsformular eingaben.

Also wieder zurück auf PHP 5.6.40: Problem behoben.

Um sicherzugehen, daß es nicht an irgendeiner Veränderung liegt, die ich selbst an der Software vornahm, habe ich extra noch ein jungfräuliches Testforum der Version 2.4.20 installiert und unter PHP 7.3.5 laufen lassen. Das Problem tritt dort ebenfalls auf. Es ist also ein generelles Problem von My Little Forum.

Als nächstes habe ich die PHP-Versionen 7.2.18, 7.1.29 und 7.0.33 eingestellt (die einzigen anderen 7er, die mein Provider anbietet). Unter diesen funktioniert die Abfrage wieder und E-Mailadressen werden akzeptiert.

Wenn ich unter PHP 7.3.5 eine Nachricht über das Kontaktformular schicken will, wird ebenfalls "die E-Mail-Adresse ist ungültig" zurückgegeben. Das Problem dürfte demnach in der function is_valid_email($email) in der functions.inc.php liegen.

In function is_valid_email($email) wird contains_invalid_string($email) aufgerufen.
Die function is_valid_url($url), in der contains_invalid_string ebenfalls aufgerufen wird, funktioniert aber und unterscheidet korrekt zwischen gültigen URLs und solchen mit ungültigen Sonderzeichen. Also kann es wohl nicht an der function contains_invalid_string($string) liegen, sondern eher an der Abfrage

if (!preg_match("/^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,}|[0-9]{1,3})(\]?)$/", $email)) {
  return false;
 }

ab Zeile 393 in der functions.inc.php.
Damit bin ich hoffentlich auf der richtigen Spur gelandet. ;-)

Gruß
Taurec


Complete thread:

 RSS Feed of thread