Quote:
Originally Posted by mclassic
How to modify the registration page to support Chinese user name?
|
I am assuming V4.
At least 2 things need to be done.
In check.js, change:
Code:
var url = '../namecheck.php?wantusername=' + escape(wantusername);
to
Code:
var url = '../namecheck.php?wantusername=' + encodeURI(wantusername);
and in namecheck.php, change:
Code:
$allowedchars = $lang['takesignup_allowed_chars'];
for ($i = 0; $i < $namelength; ++$i) {
if (strpos($allowedchars, $username[$i]) === false) return false;
}
to
Code:
if (!preg_match("/^[\p{L}\p{N}]+$/u", urldecode($username))) {
return false;
}
There are many other areas that also need changed, such as take invites, add user, change username. But, this answers your question. This also allows any valid language letter or number, not just Chinese.
If you want ONLY Chinese, then in namecheck.php, change to:
Code:
if (!preg_match("/^[\p{Han}]+$/u", urldecode($username))) {
return false;
}
This last is untested.