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);
这样就行了,其实很简单哈。