Thank you for noticing this — yes, miniBB still uses a 4-char limit for the domain extension. Appears outdated and I'll fix it in the new release.
By now, the quickest solution you may apply to your script:
— open
bb_func_checkusr.php for editing
— locate the regular expression check applied to the
$dbUserSheme['user_email'][1] — that's the only one place and looks like this:
«#^[0-9a-z]+([._-][0-9a-z_]+)*_?@[0-9a-z]+([._-][0-9a-z]+)*[.][0-9a-z]{2}[0-9A-Z]?[0-9A-Z]?$#i»
— Try to remove the closing patterns and extend it to 63 chars (the maximum TLD length specified by RFC 1034 is 63 octets, currently the longest domain extension is about 24 chars and it is
XN--VERMGENSBERATUNG-PWB accordingly to the
IANA list):
«#^[0-9a-z]+([._-][0-9a-z_]+)*_?@[0-9a-z]+([._-][0-9a-z]+)*[.][0-9a-z]{63}$#i»
I didn't try it out, but by all logics it should work...
This is a
temporary solution. I suppose, for the new miniBB version I will use more sophisticated embedded function of PHP like
filter_var, with the
FILTER_VALIDATE_EMAIL.
So you could also update the full line of code, replacing:
elseif(!preg_match(«#^[0-9a-z]+([._-][0-9a-z_]+)*_?@[0-9a-z]+([._-][0-9a-z]+)*[.][0-9a-z]{2}[0-9A-Z]?[0-9A-Z]?$#i», ${$dbUserSheme['user_email'][1]})) $correct=4;
to:
elseif(!filter_var(${$dbUserSheme['user_email'][1]}, FILTER_VALIDATE_EMAIL)) $correct=4;