查看: 3341|回复: 10

[分 享] 彻底解决V9整合dX3.0新注册用户需要激活问题

  [复制链接]
发表于 2013-9-25 13:24:42 | 显示全部楼层 |阅读模式
  • 插件名称:彻底解决V9整合dX3.0新注册用户需要激活问题
  • 适用版本:v9
  • 语言编码:GBK简体 
  • 插件作者:1
  • 版权所属:1
  • 支持网站:1
  • 插件介绍:彻底解决V9整合dX3.0新注册用户需要激活问题
  • 适用版本号:最新
phpsso与ucenter通信成功后,XXX_ucenter_member表中的用户已经同步成功但是在 XXX_common_member中并没有此用户,所以只要在xxx_common_member中插入此用户就可以了,所以修改discuz/api /uc.php下的synlogin函数就可以了,修改为

可以实现phpcms中注册后去discuz中就可以不用激活就自动登录了


  1. function synlogin($get, $post) {   
  2.         global $_G;   
  3.   
  4.         if(!API_SYNLOGIN) {   
  5.             return API_RETURN_FORBIDDEN;   
  6.         }   
  7.   
  8.         header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');   
  9.   
  10.         $cookietime = 31536000;   
  11.         $uid = intval($get['uid']);   
  12.         $query = DB::query("SELECT uid, username, password FROM ".DB::table('common_member')." WHERE uid='$uid'");   
  13.         if ($member = DB::fetch($query))   
  14.         {   
  15.             dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);   
  16.         }else  
  17.         {   
  18.             $username = $get['username'];   
  19.             $query = DB::query("SELECT uid, username, password, email FROM ".DB::table('ucenter_members')." WHERE username='$username'");   
  20.             $member = DB::fetch($query);   
  21.             $password = $member['password'];   
  22.             $email = $member['email'];   
  23.             $ip = $_SERVER['REMOTE_ADDR'];   
  24.             $time = time();   
  25.             $userdata = array(   
  26.                 'uid'=>$uid,   
  27.                 'username'=>$username,   
  28.                 'password'=>$password,   
  29.                 'email'=>$email,   
  30.                 'adminid'=>0,   
  31.                 'groupid'=>10,   
  32.                 'regdate'=>$time,   
  33.                 'credits'=>0,   
  34.                 'timeoffset'=>9999   
  35.             );   
  36.             DB::insert('common_member', $userdata);   
  37.   
  38.             $status_data = array(   
  39.                 'uid' => $uid,   
  40.                 'regip' => $ip,   
  41.                 'lastip' => $ip,   
  42.                 'lastvisit' => $time,   
  43.                 'lastactivity' => $time,   
  44.                 'lastpost' => 0,   
  45.                 'lastsendmail' => 0   
  46.             );   
  47.             DB::insert('common_member_status', $status_data);   
  48.             DB::insert('common_member_profile', array('uid' => $uid));   
  49.             DB::insert('common_member_field_forum', array('uid' => $uid));   
  50.             DB::insert('common_member_field_home', array('uid' => $uid));   
  51.             DB::insert('common_member_count', array('uid' => $uid));   
  52.             DB::query('UPDATE '.DB::table('common_setting')." SET svalue='$username' WHERE skey='lastmember'");   
  53.             $query = DB::query("SELECT uid, username, password FROM ".DB::table('common_member')." WHERE uid='$uid'");   
  54.             if ($member = DB::fetch($query))   
  55.             {   
  56.                 dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);   
  57.             }   
  58.         }   
  59.     }  
复制代码

需要的顶起来

评分

参与人数 1鲜花 +4 收起 理由
7pakinek + 4 赞一个!

查看全部评分

 楼主| 发表于 2013-9-25 13:25:31 | 显示全部楼层
沙发自己做
回复 支持 反对

使用道具 举报

发表于 2013-9-25 13:32:33 | 显示全部楼层
正准备用呢,来得早不如来的巧,我准备用pc全新打造一个大型的门户已经投资了五千多了,马上就要套模板了,最后整合的时候来这里搞搞你的这段代码哈哈。mark一下
回复 支持 反对

使用道具 举报

发表于 2013-9-25 14:26:08 | 显示全部楼层
很好,有用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-26 12:27:47 | 显示全部楼层
别沉了啊
回复 支持 反对

使用道具 举报

发表于 2013-9-27 03:14:53 | 显示全部楼层
明天继续给花~~~虽然暂时还不能太理解,留给以后好好学习~~谢谢分享~这是很好的技术贴!
回复 支持 反对

使用道具 举报

发表于 2013-9-27 10:08:13 | 显示全部楼层
本帖最后由 hsjsqc 于 2013-9-27 10:11 编辑

替换掉下面代码(应该是这样)
  1.         function synlogin($get, $post) {
  2.                 global $_G;

  3.                 if(!API_SYNLOGIN) {
  4.                         return API_RETURN_FORBIDDEN;
  5.                 }

  6.                 header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');

  7.                 $cookietime = 31536000;
  8.                 $uid = intval($get['uid']);
  9.                 if(($member = getuserbyuid($uid, 1))) {
  10.                         dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);
  11.                 }
  12.         }
复制代码
我现在已经成功了,在PHPCMS里面注册而且论坛实现了同步登录
回复 支持 反对

使用道具 举报

发表于 2013-9-27 12:52:03 | 显示全部楼层
太好了,支持
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-27 14:50:12 | 显示全部楼层
hsjsqc 发表于 2013-9-27 10:08
替换掉下面代码(应该是这样)我现在已经成功了,在PHPCMS里面注册而且论坛实现了同步登录

:handshake
回复 支持 反对

使用道具 举报

发表于 2013-10-2 21:53:48 | 显示全部楼层
感谢您的分享
回复 支持 反对

使用道具 举报

发表于 2013-10-5 21:57:16 | 显示全部楼层
太棒了,我一直在找这个!(*^__^*) 嘻嘻……,谢谢楼主!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 点击这里注册

本版积分规则

小黑屋|Archiver|phpcms网站管理系统 ( 京ICP备14011169 )

GMT+8, 2019-10-17 03:37 , Processed in 0.249657 second(s), 12 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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