phpcms v9 怎么通过数据库实现会员导入
本篇内容介绍了"phpcms v9 怎么通过数据库实现会员导入"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
有一个旧系统的用户需要导入到新的系统中,新的系统使用的phpcms v9二次开发的系统,需要把旧系统的用户导入到新的系统中,网上有使用的导入模块的东西但是使用效果不佳,所有采用直接在数据库中操作的方法。
1.确定phpcms v9添加会使用的两个表:v9_member v9_sso_members(这个和是否安装sso有关)
2.用户密码加密规则:MD5(MD5(password)+随机数) 也就是想使用MD5加密输入的密码在加上系统生成的随机数(v9_member表encrypt列)。
3. v9_member的phpssouid 和 v9_sso_members的phpssouid保持一致。
4.在系统中新增的用户id是自增的。
明白以上几点规则就开始进行操作了:
INSERT INTO `phpcmsv9`.`v9_member` (`userid`, `phpssouid`, `username`, `password`, `encrypt`, `nickname`, `regdate`, `lastdate`, `regip`, `lastip`, `loginnum`, `email`, `groupid`, `areaid`, `amount`, `point`, `modelid`, `message`, `islock`, `vip`, `overduedate`, `siteid`, `connectid`, `from`, `mobile`) VALUES ('10000001', '10000001', '用户名', MD5(CONCAT(MD5('这里是明文的密码'),'随机数')), '随机数', 'xxxx', '1564468773', '1564468849', '172.16.1.1', '172.16.1.1', '0', '11@qq.com', '2', '0', '0.00', '1', '10', '0', '0', '0', '0', '1', '', '', '');
INSERT INTO `phpcmsv9`.`v9_sso_members` (`uid`, `username`, `password`, `random`, `email`, `regip`, `regdate`, `lastip`, `lastdate`, `appname`, `type`, `avatar`, `ucuserid`) VALUES ('10000001', '用户名', MD5(CONCAT(MD5('这里是明文的密码'),'随机数')), '随机数', 11@qq.com', '172.16.1.1', '1564468773', '127.0.0.1', '1564470571', 'phpcms v9', 'app', '0', '0');
这里的id采用一个比较大的就行,系统自增用不到的就行。
后续补充,在后续按照这个方法的操作是出现的问题和解决方法:
我使用将需要插入的列导入到excle中然后在前后加sql语句来拼装成sql语句。
问题1.使用navicat 运行sql文件无论用那种编码都导致中文变成?号的情况。 最后直接把sql语句粘贴到控制台运行的方法,导入正确。
问题2. 原系统的账户名或密码有0开头的导致进入excle中时被默认去掉。 在从原数据库导出的时候在这些前面拼接固定字符串,之后生成sql之后再替换掉。
问题3.excle中拼接sql时,开头不能为' 否则和0开头一样。 不能避免就采用类似问题2的方法,在拼接是开头加固定字符串。
修改密码长度限制
修改登录is_password
phpcms/libs/functions/global.func.php
在if 判断的两个数字 1 到20 是密码字符串的区间。
"phpcms v9 怎么通过数据库实现会员导入"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!