Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

2个discuz论坛存在重复ID的时候,升级后出现的激活错误,发生机制已找到

[复制链接]
17chuchai 发表于 2008-5-12 00:41:54 | 显示全部楼层 |阅读模式
升级61后,几个应用之间注册用户激活时候出现的问题,我搜了一下,很多人都有提到过,一直没有解决办法,我试验了大半夜,终于找到一点线索,希望有助于管理员解决这个很多人反映的问题。

php4, mysql4.1,dz6.0升级6.1顺利完成。

问题现象:


升级后,几个应用之间激活用户出现的错误,具体表现在:

当主应用1和次应用2均有相同名字的某注册用户test时候,在激活的时候,出现类似下面的sql错误:

Discuz! info: MySQL Query Error

Time: 2008-4-24 6:02pm
Script: /discuz/register.php

SQL: INSERT INTO [Table]members (uid, username, password, secques,gender, adminid, groupid, regip, regdate, lastvisit, lastactivity,posts, credits, extcredits1, extcredits2, extcredits3, extcredits4,extcredits5, extcredits6, extcredits7, extcredits8, email, bday,sigstatus, tpp, ppp, styleid, dateformat, timeformat, pmsound,showemail, newsletter, invisible, timeoffset)
VALUES ('3590', 'QBer01', '424cf5f483804953793359c1a61914d0', '', '0','0', '10', '61.149.143.185', '1209031361', '1209031361', '1209031361','0', 0,0,0,0,0,0,0,0,0, 'QBer01@gmail.com', '0000-00-00', '0', '0','0', '', '0', '0', '1', '1', '1', '0', '9999')
Error: Duplicate entry '3590' for key 1
Errno.: 1062

Similar error report has beed dispatched to administrator before.



问题具体测试:



1)先在主应用1上,登录该重复用户“test”,由于是主应用,登录正常;然后同步登录到应用2,提示要求激活,此时点击激活,出现上述错误。



2)如果换一下,先在次应用2上登录用户“test”,由于是次应用,登陆后即提示,用户名重复,要求更改名字,此时按要求更改名字后,操作正常,成功更改名字为newtest。此时,已经不存在重复名字,因此,到主应用1中也成功登陆并激活。



此时,原来主应用1中的“test”由于也不存在重复名字,因此也可以在2个应用中顺利登录和激活。



因此,问题只在下面情况下发生:



当2个应用存在重复ID,当该ID先在主应用中登录,并同步登陆到次应用时,将无法激活!!!!出现上述错误。



为避免错误,必须现在次应用中登录该ID,并改名后,才可以。
 楼主| 17chuchai 发表于 2008-5-12 10:16:04 | 显示全部楼层
回复

使用道具 举报

monkeye 发表于 2008-5-12 10:25:30 | 显示全部楼层
UID 在第二个论坛升级的时候已经提升了
不会重复,只有用户名会重复提示改名
除非升级有错误

https://discuz.dismall.com/viewthread.php?tid=885410
回复

使用道具 举报

 楼主| 17chuchai 发表于 2008-5-12 11:37:56 | 显示全部楼层
但是我确实遇到这个了,测试好长时间了。

monkeye可能没有理解我的意思。
uid是提升了,但是名字还是重复的,在这个时候就会出现我说的情况:

当2个应用存在重复名字的ID,当该ID先在主应用中登录,并同步登陆到次应用时,将无法激活!!!!出现上述错误。
为避免错误,必须现在次应用中登录该ID,并改名后,才可以。

我的2个升级均没有错误。
回复

使用道具 举报

 楼主| 17chuchai 发表于 2008-5-12 11:39:16 | 显示全部楼层
我指的重复,不是指UID重复,而是名字重复。
UID确实没有重复的,因为次应用中的id已经提升了。
回复

使用道具 举报

 楼主| 17chuchai 发表于 2008-5-12 11:42:29 | 显示全部楼层
回到你的这个帖子中:
https://discuz.dismall.com/viewthread.php?tid=885410

在“更名”下面,
你说的test2更名情况,是先在次应用中登录,因此要求更名,这个是没有问题的,我的论坛也会操作成功。
但是,
当你的test2先在主应用中登录(因为主应用也有一个同名字的test2),而后在次应用中同步登陆的时候,在次应用中要求激活,这时候会出现上述错误。
回复

使用道具 举报

monkeye 发表于 2008-5-12 12:29:19 | 显示全部楼层
遇到重名的!如 test
应该在应用2登录 然后改名为如test2
这时候UCenter中才会有这个用户 test2

然后应用1才可以通过改名后的用户 test2 登录
回复

使用道具 举报

 楼主| 17chuchai 发表于 2008-5-12 12:31:38 | 显示全部楼层
但是注册用户不知道已经有重名了啊

比如主应用1中的test,难道他只能等次应用2中的test改名后,才可以在次应用中激活码?

别人不改名,他就激活不了了?
回复

使用道具 举报

monkeye 发表于 2008-5-12 12:38:45 | 显示全部楼层
是的!

论坛2的 test 必须改名为其他的
他在UC里才有账号
回复

使用道具 举报

 楼主| 17chuchai 发表于 2008-5-12 13:55:29 | 显示全部楼层
知道了,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-15 17:00 , Processed in 0.028702 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表