这个我只是简单的做下修改 没有对程序文件进行较大的变动。
首先讲解下原理:大家应该都知道dede会员的mid值是一个自增的字段,也就是每添加一行会员记录这个值自动加1。 那么我们也可以考虑不让它自增,而是在uch的会员登录dede激活的时候读取该会员的uid值,写入mid字段。 这样在会员第一次登录dede的时候写入对dede程序不会有什么影响。
目前我以,已经注册了uch(即有了uid值),把mid取uid值的方法做一下讲解(其他把uid取mid值 也是一样的原理)
做这个改进的前提条件:
关闭dede会员注册功能,只开启ucenter home的注册(这样可以防止会员id错乱)。
需要修改的文件如下:
memberindex_do.php 找到代码(位置大概是280------281行):
Copy code`mtype`='个人',`userid`='$username',`pwd`='$password',`uname`='$username',`sex`='男' ,`rank`='10',`money`='$money', `email`='$email', `scores`='$scores', `matt`='0', `face`='',`safequestion`='0',`safeanswer`='',
在最前面加一句`mid`='$uid', 结果如下面的代码:
Copy code`mid`='$uid',`mtype`='个人',`userid`='$username',`pwd`='$password',`uname`='$username',`sex`='男' ,`rank`='10',`money`='$money', `email`='$email', `scores`='$scores', `matt`='0', `face`='',`safequestion`='0',`safeanswer`='',
在这里修改后,uid的值会被写入到dede会员系统中所有的mid中,这样不会造成什么问题,本人已经做了一些测试,不过如果大家有什么疑问的话,还是可以跟帖一起讨论。这个方法不是最完善的 但确实最简单的。
注意:DEDE的ucenter模块,默认是把其他系统的会员注册成dede的个人会员,如果您要做成企业会员,可以再次开发一点,请接着看下面内容。
目前在别的系统中注册的会员,第一次访问dede是需要登录的,但登录没有任何提示,而且默认写入成个人会员。为此个人做的是,在dede登录,如果是ucenter中存在的会员而dede不存在,那么暂时不写入数据库,而是提示自动跳转到一个激活页面,这个页面在获取前一步的mid 用户名 密码 这3个值后,再加一个选项表单,个人 企业 2个选项,确定后根据选项把值写入不同的会员数据表里去。
激活提示的代码修改如下:
memberindex_do.php 找到代码(位置大概是280------281行):
找到Copy code//当UC存在用户,而CMS不存在时,就注册一个
if(!$rs) {
//会员的默认金币
改成:Copy code//当UC存在用户,而CMS不存在时,就注册一个
if(!$rs) {
ShowMsg("您已经注册,稍候自动进入激活页面!","http://激活页面网址",0,2000);
exit();
//会员的默认金币
上面代码中 2000 跳转等待时间。 激活网址换成自己的。
这个是思路,由于是朋友问我这个问题,我做到这之后没继续弄下去了,让他自己去解决了,所以如果有人有这个需要的话,可以一起探讨!