发新话题
打印

[问题]曼虎装好以后与PHPBB2连接后不能注册

[问题]曼虎装好以后与PHPBB2连接后不能注册

好不容易把论坛与MAMBO用曼虎连接上了,但却不能注册,每次注册都会显示以下内容:
mosuser::storefailed<br/>Duplicate entry'2147483647'for key 1 SQL=insert into mos_users (id, name, username, email, password, usertype,  gid, registerDate)values '0' 'cccc'"cccc' 18081252@qq.com dd4b21e9ef71291183a46b913ae6f2 ',' '18' 2005-09-14 00:26:05'


在数据从 Phpbb2.0.1x 转到 Mambo4.5.2时,我把曼虎钩子里面说明的代码"insert into mos_users (id, name, username, email, password, usertype, block, sendEmail, gid, registerDate, lastvisitDate, activation, params)
select user_id, username, username, user_email, user_password, "", 0, 0, 18, FROM_UNIXTIME(user_regdate), FROM_UNIXTIME(user_lastvisit), "", ""
from phpbb_users;

INSERT INTO mos_core_acl_aro (section_value, value, order_value, name, hidden)
SELECT "users", id, 0, name, 0 FROM mos_users;

INSERT INTO mos_core_acl_groups_aro_map (group_id, section_value, aro_id)
SELECT 18, '', aro_id FROM mos_core_acl_aro;"插入到 Mambo 用户表 mos_users 中了,问题是不是出在这里呢?现在我又该如何改正呢?谢谢版主!

TOP

你用的是 hook_phpbb1.2?
复制内容到剪贴板
代码:
insert into mos_users (id, name, username, email, password, usertype, block, sendEmail, gid, registerDate, lastvisitDate, activation, params)
select user_id, username, username, user_email, user_password, "", 0, 0, 18, FROM_UNIXTIME(user_regdate), FROM_UNIXTIME(user_lastvisit), "", ""
from phpbb_users WHERE user_id > 0;
要加上条件:WHERE user_id > 0;

TOP

我用的是1.5的钩子,请问还是用上面的代码吗?

TOP

我试过把你上面的代码插进去,还是同样的问题.现在应该怎么弄呀?真是急死人了

TOP

就是在用户数据转移时,使用以下sql命令:
复制内容到剪贴板
代码:
2. 用户数据从 Phpbb2.0.1x 转到 Mambo4.5.2

此转换方法以 Phpbb 的用户数据为主,原 Mambo 的用户数据将被删除,然后把 Phpbb 的用户数据导入 Mambo 中。

使用方法:一次执行以下 3 项 SQL 语句

#2.1 删除 Mambo用户表记录

DELETE FROM mos_users;
DELETE FROM mos_core_acl_aro;
DELETE FROM mos_core_acl_groups_aro_map;

#2.2 把 Phpbb 用户表 phpbb_users 记录插入到 Mambo 用户表 mos_users 中

insert into mos_users (id, name, username, email, password, usertype, block, sendEmail, gid, registerDate, lastvisitDate, activation, params)
select user_id, username, username, user_email, user_password, "", 0, 0, 18, FROM_UNIXTIME(user_regdate), FROM_UNIXTIME(user_lastvisit), "", ""
from phpbb_users WHERE user_id > 0;

INSERT INTO mos_core_acl_aro (section_value, value, order_value, name, hidden)
SELECT "users", id, 0, name, 0 FROM mos_users;

INSERT INTO mos_core_acl_groups_aro_map (group_id, section_value, aro_id)
SELECT 18, '', aro_id FROM mos_core_acl_aro;

#2.3 设置 Phpbb 管理员为 Mambo 管理员, Phpbb 的管理员 id 为 2

SELECT @aro_id := aro_id FROM mos_core_acl_aro WHERE value=2;
UPDATE mos_users SET usertype='Super Administrator', gid=25 WHERE id=2;
UPDATE mos_core_acl_groups_aro_map SET group_id=25 WHERE aro_id=@aro_id;
你重新作一下用户数据转换。

TOP

执行后显示:
mosmamhoo::保存失败<br/>you have an error in your SQL  syntar 'WHERE user_id='2147483647'' at line 1 SQL=UPDQTE mos_mamhoo SET WHERE user_id='2147483647'

TOP

噢,明白了。

清空 mos_mamhoo 表的内容。

TOP

那现在怎么办呢?

TOP

1. 重新作一下用户数据转换

2. 清空 mos_mamhoo 表的内容。

TOP

天哪,在这里从小学生变成了高中生,可网站还没接好,真的快疯掉了!现在又出现新问题了,帮我再看看呢:
DB function failed with error number 1062
Duplicate entry '8388607' for key 1 SQL=insert into phpbb_users (user_id, user_active, username, user_password, user_regdate, user_lang, user_dateformat, user_viewemail, user_allowhtml, user_email) values (2147483647, 1, 'xixi', 'dd4b21e9ef71e1291183a46b913ae6f2', UNIX_TIMESTAMP('2005-09-14 23:50:08'), 'chinese_simplified', 'Y-m-d H:i', 0, 0, '72323354@qq.com')

TOP

请你用以下sql重新转换你的用户数据,注意加上红色部分:

2. 用户数据从 Phpbb2.0.1x 转到 Mambo4.5.2

此转换方法以 Phpbb 的用户数据为主,原 Mambo 的用户数据将被删除,然后把 Phpbb 的用户数据导入 Mambo 中。

使用方法:一次执行以下 3 项 SQL 语句

#2.1 删除 Mambo用户表记录

DELETE FROM mos_users;
DELETE FROM mos_core_acl_aro;
DELETE FROM mos_core_acl_groups_aro_map;

#2.2 把 Phpbb 用户表 phpbb_users 记录插入到 Mambo 用户表 mos_users 中

insert into mos_users (id, name, username, email, password, usertype, block, sendEmail, gid, registerDate, lastvisitDate, activation, params)
select user_id, username, username, user_email, user_password, "", 0, 0, 18, FROM_UNIXTIME(user_regdate), FROM_UNIXTIME(user_lastvisit), "", ""
from phpbb_users WHERE user_id > 0;

INSERT INTO mos_core_acl_aro (section_value, value, order_value, name, hidden)
SELECT "users", id, 0, name, 0 FROM mos_users;

INSERT INTO mos_core_acl_groups_aro_map (group_id, section_value, aro_id)
SELECT 18, '', aro_id FROM mos_core_acl_aro;

#2.3 设置 Phpbb 管理员为 Mambo 管理员, Phpbb 的管理员 id 为 2

SELECT @aro_id := aro_id FROM mos_core_acl_aro WHERE value=2;
UPDATE mos_users SET usertype='Super Administrator', gid=25 WHERE id=2;
UPDATE mos_core_acl_groups_aro_map SET group_id=25 WHERE aro_id=@aro_id;

TOP

还是有问题,是不是那里做错了呢?
DB function failed with error number 1062
Duplicate entry '8388607' for key 1 SQL=insert into phpbb_users (user_id, user_active, username, user_password, user_regdate, user_lang, user_dateformat, user_viewemail, user_allowhtml, user_email) values (8388608, 1, 'yunbo', 'dd4b21e9ef71e1291183a46b913ae6f2', UNIX_TIMESTAMP('2005-09-15 13:37:55'), 'chinese_simplified', 'Y-m-d H:i', 0, 0, '437762153@qq.com')

TOP

这种情况在 www.tiren.net 安装 phpbb 钩子的时候出现过,后来我远程解决了,主要原因是 phpbb_users 表有一条记录 id=-1 ,而 -1 在电脑中相当于最大的正整数。

第一次你用以下语句转移用户表资料时,mos_users 表的记录的 id 就有最大值:

insert into mos_users (id, name, username, email, password, usertype, block, sendEmail, gid, registerDate, lastvisitDate, activation, params)
select user_id, username, username, user_email, user_password, "", 0, 0, 18, FROM_UNIXTIME(user_regdate), FROM_UNIXTIME(user_lastvisit), "", ""
from phpbb_users;

因此你注册新用户时就会出现重复id的错误:

mosuser::storefailed<br/>Duplicate entry'2147483647'for key 1 SQL=insert into mos_users (id, name, username, email, password, usertype, gid, registerDate)values '0' 'cccc'"cccc' 18081252@qq.com dd4b21e9ef71291183a46b913ae6f2 ',' '18' 2005-09-14 00:26:05'

mos_users 表是自动增量生成id的,而 2147483647 已经是 mos_users 表的最大 id 值,再怎么增量都是 2147483647 。

TOP

那现在我该怎么办?要不你给我远程解决一下,反正我是要买你的钩子的.

TOP

可以,你加我的 qq 或 msn

TOP

我也是出现这样的 问题啊~
怎么办?

TOP

发新话题