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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[展示] discuz 用户批量导入功能,实测X3.X2.5有效

[复制链接]
wywhlchz 发表于 2014-5-9 15:07:24 | 显示全部楼层 |阅读模式
本帖最后由 wywhlchz 于 2014-5-9 15:13 编辑

discuz 用户批量导入功能,实测X3.X2.5有效
代码下载

先上成果图:10198个用户都导入成功了。




原理:封装注册函数成独立接口,利用火车头批量调用接口。方法比较常规,但是实测有效。
步骤:
1,(没有采用直接用sql写数据表的方法,discuz注册一个用户关联了4,5张表,比较繁琐。) 进入后台管理,在后台添加用户的表单中找到了admin.php?action=members&operation=add,一直定位到添加用户的源代码在admincp_members.php的904行。然后把这一部分抽取到另外一个php,封装出来一个接口,接口只有
单一的注册用户功能,具体如下:usersql.php
代码很简单,放到跟论坛一起的同目录下,/bbs/usersql.php?newusername=llo&newpassword=12345&newemail=iii@kk.com&newgroupid=10
每访问一次这条链接,则生成一个名为llo,密码为12345,邮箱为iii@kk.com,组默认为10(新手组,按需改即可,后台可查看组的ID),当然这个接口对用户注册
做了一些校验,例如用户名重复,邮箱重复等。注册成果提示 “用户名+success”,

再次访问再则提示用户已存在,不会导致重复插入。


2,有了上述接口,就很简单了,循环向接口提交数据即可,可以用php写,我这里用的是火车头,因为比较简单方便,而且能调节并发数等。
火车头的任务为,user.ljobx。接下来得批量生成接口链接。代码为prolist.php。这里从本地数据库读取帐号密码批量生成每个注册用户的接口链接。
生成类似如下的txt文件


然后是火车头操作,直接导入user.ljobx这个任务,然后修改的地方有:
1)修改成上一步生成的txt


2)保存位置得重新设置成你的,文件模板为一个txt文件,压缩包里为my.txt,这里能记录每次接口返回的信息,例如注册成果或者用户名重复等,都保存在这里面。


3)这里可以调整线程速度,就是每次注册几个用户,实测按默认设置,5分钟能注册1000个。


4)最后保存,点击开始任务,我实测一次导入9800个用户,大概需要30分钟

5)最后,查看每次用户是否生成成功,可以查看第2)中生成的txt<split>为分隔符。


也可以查看火车头的本地数据库



3,最后,到后台更新缓存即可。最后这都是在内网中进行,本机和服务器之间网络畅通,本次导入1.5W数据,全部成果,错误率为0。
如有任何疑问,可以加QQ103024-1618交流,请注明:disucz批量导入。只进行技术交流,如有特需需求,可有偿批量导入。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
 楼主| wywhlchz 发表于 2014-5-9 15:11:02 | 显示全部楼层
补充一点,usersql.php用完之后得马上删除,避免被有心人士调用。
回复

使用道具 举报

蓝猫DZ 发表于 2014-5-9 17:30:18 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 01:28 , Processed in 0.032799 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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