Strange...
In 4.1.8 (note: no "!preg_match" or "eregi")
Code:
#
# Check for errors
#
$uname_tmp=stripslashes($uname);
if (strcmp($uname_tmp, $uname) !=0)
$error="Username ".$uname_tmp." is invalid! Please correct";
else
$error='';
$smarty->assign("error",$error);
In 4.1.10 (added "eregi" and "newbie/anonymous" checks)
Code:
#
# Check for errors
#
$uname_tmp=stripslashes($uname);
if ((strcmp($uname_tmp, $uname) !=0) || (eregi("[^a-z0-9_-]",$uname) && $newbie == "Y" && $anonymous != "Y"))
$error="username";
else
$error='';
$smarty->assign("error",$error);
In Security Patch 2008-07-02_4.1.10 (no change from 4.1.10 - still "eregi"and "newbie/anonymous" checks)
Code:
#
# Check for errors
#
$uname_tmp=stripslashes($uname);
if ((strcmp($uname_tmp, $uname) !=0) || (eregi("[^a-z0-9_-]",$uname) && $newbie == "Y" && $anonymous != "Y"))
$error="username";
else
$error='';
$smarty->assign("error",$error);
In 4.1.11 (changed "eregi" to "!preg_match"and no "newbie/anonymous" checks)
Code:
#
# Check for errors
#
$error = '';
# Login will be checked only for new profiles
if ($mode != "update") {
$uname_tmp = stripslashes($uname);
if ((strcmp($uname_tmp, $uname) != 0) || (!preg_match("/^[a-z0-9_-]+$/s", $uname) && $uname != ""))
$error = "username";
}
$smarty->assign("error", $error);
In 4.2.0b (no change from 4.1.11)
Code:
#
# Check for errors
#
$error = '';
# Login will be checked only for new profiles
if ($mode != "update") {
$uname_tmp = stripslashes($uname);
if ((strcmp($uname_tmp, $uname) != 0) || (!preg_match("/^[a-z0-9_-]+$/s", $uname) && $uname != ""))
$error = "username";
}
$smarty->assign("error", $error);
This brings some questions...
1. Why the switch from "eregi" to "!preg_match"?
2 Why were the "newbie" and "anonymous" checks added, then removed?
3. Why was "if ($mode != "update")" added if, as you say, "There is something over riding the settings" when it is updated?