昨天(其实是今天凌晨)把discuz的编码从gbk转换到了utf-8,一切很顺利。今天下午去论坛一看,发现很多用户不能登陆,并且这方面用户主要集中在版主管理层,因为是升级了论坛,更因为是discuz采用的ucenter来统一管理用户,所以一开始就把问题搁在这里想了。
但最终是想不明白,因为找不到问题啊。完全好好的。不能登陆的主要是管理层人员,这点就让我很不明白了,询问了一下发现主要是那个安全问答的问题,可我还是不明白,因为我也有设定安全提问呢,但登陆完全没有问题呢。
实在没办法要来了其中一个版主的帐号,尝试登陆了一下,果然是不行。这是才猛然发现,问题果然是出在安全问答上面,为什么我的安全问答能登陆呢,汗一个——因为我比较懒,安全问题用的是数字。 他们一般用的是中文,而编码转换后,汉字的相关加密代码就变了,而数字始终是单字节字符不会有变化。
这下问题明了了,由于编码转换,导致了原来的中文安全问题编码和现在的不能匹配,所有造成了无法登陆。
解决也很简单,执行一行代码,把所有的会员表安全问题 secques 字段的值都清空了。
所有用户登陆不使用安全提问,OK一切都行了。
評論