DZ论坛用户无法登录,DZ存在用户,而UC没有,最简单的解决办法
突然由用户反应无法登录论坛了,用户名和密码都正确,一查用户资料页也可以访问,而UC里却没有该用户的信息。怎么办呢?
这里提供一条我之前用过的非常简单的方法,只需进入数据库管理,执行以下两条语句即可: 温馨提示:数据库操作有风险,建议您提前备份好用户数据,并在人少的时候执行。 insert into pre_ucenter_members
(uid,username,password,email,myid,myidkey,regip,regdate,lastloginip,lastlogintime,salt)
select uid,username,md5(concat(md5('123456'),'123456')),email,'0','0','0.0.0',regdate,'123','123456','123456'
from pre_common_member where uid not in (select uid from pre_ucenter_members );
insert into pre_ucenter_memberfields (uid,blacklist)
select uid,'' from pre_common_member where uid not in (select uid from pre_ucenter_memberfields); 语句的作用就是把DZ论坛有记录,而UC不存在账户的这部分的用户信息导入到UC,由于密码只有UC里有,DZ没有,所以导入的同时,将这部分用户的密码自动重置为123456,那么以后再遇到反映问题的用户,提示他们用新密码登录就可以了。
有一种情况,如果发现DZ和UC用户数据不同步的问题,距离出现问题的时间已经很久了。可能有部分用户发现无法登陆时,用自己原来的 用户名,重新注册了(由于UC没有这部分用户的资料,所以即使DZ有,注册时,也不会显示 用户名已被占用 的提示)。那么直接执行上面的语句,可能会造成部分用户名重叠,导致这部分用户登陆异常。不用着急,稍微修改一下上面的语句即可:
insert into pre_ucenter_members
(uid,username,password,email,myid,myidkey,regip,regdate,lastloginip,lastlogintime,salt)
select uid,username,md5(concat(md5('123456'),'123456')),email,'0','0','0.0.0',regdate,'123','123456','123456'
from pre_common_member where uid not in (select uid from pre_ucenter_members ) and username not in (select username from pre_ucenter_members );
第二句和上面一样。
最后,提醒大家进行论坛升级,操作数据库等操作前,使用批量操作用户数据的插件时,一定要提前备份自己的DZ和UC数据,操作完成后,马上检查用户数据是否有异常,建立一个QQ群,确保用户有问题,能马上联系技术人员。养成好习惯,出现再多的问题,也不怕。
|