Open the include/register.php file and change this:
PHP Code:
if ((strcmp($uname_tmp, $uname) != 0) || (!preg_match("/^[a-z0-9_-]+$/s", $uname) && $uname != ""))
to this:
PHP Code:
if ((strcmp($uname_tmp, $uname) != 0) || (!preg_match('/^[a-z0-9_@.-]+$/i', $uname) && $uname != ""))
The default X-Cart 4.1 code allows only lowercase a-z, 0-9, -, and _. Oddly this code also has a flag to treat . as a line break, but there isn't a . in the code regex??
The new code will allow lower or uppercase a-z, 0-9, -, @, ., and _.