Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4263467
  • 博文数量: 601
  • 博客积分: 15410
  • 博客等级: 上将
  • 技术积分: 6884
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-16 08:11
个人简介

独学而无友,则孤陋而寡闻!

文章分类

全部博文(601)

文章存档

2020年(1)

2018年(4)

2017年(7)

2016年(42)

2015年(25)

2014年(15)

2013年(36)

2012年(46)

2011年(117)

2010年(148)

2009年(82)

2008年(37)

2007年(41)

分类: 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);


阅读(2184) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~