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

by Taurec, Monday, July 15, 2019, 20:42 (1739 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

Avatar

Problem mit E-Mail-Check unter PHP 7.3.5?

by Micha ⌂, Monday, July 15, 2019, 21:29 (1739 days ago) @ Taurec

Hallo Taurec,

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.

Diese Zeile gibt es dort nicht mehr, wenn Du eine aktuelle Version nutzt. Dort sollte
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
stehen. Kannst Du bitte mal prüfen, ob es läuft, wenn Du die Funktion tauschst?

Viele Grüße
Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Problem mit E-Mail-Check unter PHP 7.3.5?

by Taurec, Tuesday, July 16, 2019, 06:03 (1738 days ago) @ Micha

Hallo!

Diese Zeile gibt es dort nicht mehr, wenn Du eine aktuelle Version nutzt.

Wenn Du mit aktueller Verison den "2.4.99.1, testing release" meinst (nebenbei: Wann wird das eine offizielle Version?). Den hatte ich nicht auf dem Radar.

Dort sollte
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
stehen. Kannst Du bitte mal prüfen, ob es läuft, wenn Du die Funktion tauschst?

Ja, so geht es. Dann hat es sich erledigt.

Gruß
Taurec

Avatar

Problem mit E-Mail-Check unter PHP 7.3.5?

by Micha ⌂, Tuesday, July 16, 2019, 06:29 (1738 days ago) @ Taurec

Hi,

Wann wird das eine offizielle Version?

Soweit ich Auge verstanden habe, werden wir nun eine Reihe von Vorversionen herausbringen, die dann 2.4.99.XXX heißen und bereits alle Feature enthalten, die für den 2.5er Zweig gedacht sind. Im Moment arbeit Auge an einem neuen Feature, welches Usern ermöglichen sollen anstößige Postings zu melden. Wenn dieses fertig ist, könnte es das nächste Preview geben.

Ja, so geht es. Dann hat es sich erledigt.

Danke für diese wichtige Rückmeldung.

Viele Grüße
Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

RSS Feed of thread