独学而无友,则孤陋而寡闻!
分类: Python/Ruby
2011-02-11 18:45:11
默认的情况下,dedecms不能使用中文名登录,这对于dede本系统的用户来说没问题,因为注册的时候就不能用中文,而对于整合了其他系统,比如discuz的用户来说,是一个致使的打击,很多中文名的管理员和版主没法登录到后台,也就没法管理。
而修改要针对GBK和UTF-8版的分别进行,修改的文件是:include\userlogin.class.php文件,在userLogin类中:
function checkUser($username,$userpwd)
{
global $dsql;
//只允许用户名和密码用0-9,a-z,A-Z,'@','_','.','-'这些字符
$this->userName = ereg_replace("[^0-9a-zA-Z_@!\.-]",'',$username);
$this->userPwd = ereg_replace("[^0-9a-zA-Z_@!\.-]",'',$userpwd);
这几句规定了用户名必须是数字、字母和几个特殊字符,不是能汉字,所以需要改进一下。
UTF-8版本:
$this->userName = preg_replace("/[^\x{4E00}-\x{9FFF}0-9a-zA-Z_@!\.-]/u",'',$username);
GBK版本:
$this->userName = preg_replace("/[^\xa1-\xff0-9a-zA-Z_@!\.-]/",'',$username);