解决CI通过Ucenter整合DZ中文用户名无法登录的问题

2013-04-18 22:07:37来源:西部e网作者:

Codeigniter通过Ucenter整合了Discuz,但是用户登录的时候出现一些小问题。英文用户名登录没问题,但是中文用户名就无法登录。判断应该就是编码不一致的问题。

Codeigniter通过Ucenter整合了Discuz,但是用户登录的时候出现一些小问题。英文用户名登录没问题,但是中文用户名就无法登录。判断应该就是编码不一致的问题。

目前的状态是:

Codeigniter是UFT-8编码
Ucenter虽然下载的是UFT-8的,但是文件都是GB2312的
Discuz是gbk的

通过DZ登录,反向CI也能登录正常。

之前的写法是:

$username = $this->input->post('username');
$this -> load -> library('Ucenter');
list($uid, $username, $password, $email) = $this->ucenter->login($username, $password);

增加一个转换即可:

$username = $this->input->post('username');
$username = iconv('UTF-8', 'GB2312', $username);
$this -> load -> library('Ucenter');
list($uid, $username, $password, $email) = $this->ucenter->login($username, $password);

这样就行了,其实很简单哈。

赞助商链接: