1234下一页
返回列表 发新帖
查看: 172|回复: 31

Discuz!X3.4 QQ互联登陆跳过完善资料或绑定账号直接以QQ昵称自动注册无感知登陆教程

[复制链接]

1万

热度

1万

元宝

1万

贡献

金牌草根

发表于 2018-11-16 16:37:15 | 显示全部楼层 |阅读模式
本帖最后由 民审-M 于 2018-11-16 16:46 编辑

网上有很多 关于discuz中QQ互联登录跳过完善资料直接登录的教材,但实际使用时,发现各个方法要么不成功,要么收费,要么存在缺陷,比如:
1. 使用该功能必须关闭注册时的验证码,否则无法生效!
2. 本方法在DISCUZ X3.4及以下下测试完全正常,其他版本慎用。还有很多:http://jingyan.baidu.com/article/2f9b480d5823d941cb6cc22b.html 比如百度文库的 修改默认用户组为普通之类的 根本不会成功.现本人通过研究得出的操作结果,也是本站QQ快捷登录实例,教材发布出来
说明:
(1)本教材适合dzX3.4以下任何版本
(2)本方法无需关闭注册验证码之类
(3)登录用户名默认是QQ昵称,如果注册不成功会自动加上时间戳保证用户名唯一再注册
(4)由于QQ快捷登录是不能获得邮箱的,所以以唯一时间戳数字@qq.com方式填入,注册成功后用户可以自行修改
(5)代码重点:在DZ中如何代码实现自动添加账号并登录成功!

操作简单:
(1)成功安装QQ互联
(2)直接复制代码到 \source\plugin\qqconnect\connect\connect_login.php 行366 else里面,不想复制代码也可以直接下载附件,覆盖文件即可
代码如下:
  1. loaducenter();
  2.                                 //创建账号并登陆
  3.                  $username = trim(dhtmlspecialchars($insert_arr['conqqnick']));
  4.                                  if($username==''){$username = 'qquser_'.time();}
  5.                  $password = md5(random(10));
  6.                  $email = 'hl'.time() . '@qq.com';
  7.                  $uid = uc_user_register($username, $password, $email);
  8.                if ($uid <= 0) {
  9.                     if ($uid == -1 || $uid == -3) {
  10.                         $username .= time();
  11.                         $uid = uc_user_register($username, $password, $email);        
  12.                                                  if ($uid <= 0) {
  13.                                                  $username = 'qquser_'.time();
  14.                          $uid = uc_user_register($username, $password, $email);        
  15.                                                  if($uid <=0){
  16.                                                   showmessage("$username注册UC失败",$referer);exit();
  17.                                                  }
  18.                                                  }                                                
  19.                     } elseif ($uid == -2) {
  20.                         showmessage('包含不允许注册的词语',$referer);
  21.                     } elseif ($uid == -4) {
  22.                         showmessage('Email 格式有误',$referer);
  23.                     } elseif ($uid == -5) {
  24.                         showmessage('Email 不允许注册',$referer);
  25.                     } else {
  26.                         showmessage('其他错误',$referer);
  27.                     }
  28.                 }
  29.                 //插入common_member
  30.                 $init_arr = array('credits' => explode(',', $_G['setting']['initcredits']));
  31.                 $groupid =  10 ;//默认新手上路组
  32.                 C::t('common_member')->insert($uid, $username, $password, $email, $_G['clientip'], $groupid, $init_arr);
  33.                //会员绑定openid
  34.                 C::t('#qqconnect#common_member_connect')->insert(
  35.                    !$_G['setting']['connect']['oauth2'] ? array(
  36.                        'uid' => $uid,
  37.                        'conuin' => $conuin,
  38.                        'conuinsecret' => $conuinsecret,
  39.                        'conopenid' => $conopenid,
  40.                        'conispublishfeed' => $conispublishfeed,
  41.                        'conispublisht' => $conispublisht,
  42.                        'conisregister' => 0,
  43.                        'conisfeed' => 1,
  44.                        'conisqqshow' => $isqqshow,
  45.                    ) : array(
  46.                        'uid' => $uid,
  47.                        'conuin' => '',
  48.                        'conuintoken' => $conuintoken,
  49.                        'conopenid' => $conopenid,
  50.                        'conispublishfeed' => $conispublishfeed,
  51.                        'conispublisht' => $conispublisht,
  52.                        'conisregister' => 0,
  53.                        'conisfeed' => 1,
  54.                        'conisqqshow' => $isqqshow,
  55.                    )
  56.                );
  57.                //更新是否绑定
  58.              C::t('common_member')->update($uid, array('conisbind' => '1'));
  59.                //模拟登录
  60.                $connect_member = C::t('#qqconnect#common_member_connect')->fetch_fields_by_openid($conopenid, $fields);
  61.                connect_login($connect_member);
  62.                //最后一次登录状态
  63.                C::t('common_member_status')->update($uid, array('lastip' => $_G['clientip'], 'lastvisit' => TIMESTAMP, 'lastactivity' => TIMESTAMP));
  64.                C::t('#qqconnect#common_connect_guest')->delete($conopenid);
  65.                            //更新新注册用户缓存
  66.                            if(!function_exists('build_cache_userstats')) {        require_once libfile('cache/userstats', 'function'); }
  67.                    build_cache_userstats();
  68.                 //省去用户绑定的话,这里可以直接创建一个账号并绑定
  69.                 //$referer = 'member.php?mod=connect&referer='.urlencode($referer);
  70.                                 $utilService->redirect($referer);
复制代码


懒人包下载:
游客,如果您要查看本帖隐藏内容请回复

本文来源于网友学习研究交流 www.caogen8.co,请以学习研究交流为主。
如果您没有贡献积分,可以直接免费领取,免费领取
如果你需要加入本学习研究交流,请以学习研究交流为目的,免责声明
如果找不到您要的资源,请搜索一下,点击搜索

1128

热度

3252

元宝

186

贡献

步入草根

发表于 2018-11-17 23:06:28 | 显示全部楼层
很不错的样子啊

1

热度

5

元宝

7

贡献

步入草根

发表于 2018-11-22 09:51:48 | 显示全部楼层
谢谢大佬,在这里做个伸手党了

20

热度

29

元宝

7

贡献

步入草根

发表于 2018-11-22 14:10:05 | 显示全部楼层
成功是在道路上磕磕绊绊后的成果

0

热度

11

元宝

13

贡献

步入草根

发表于 2018-11-25 03:14:22 | 显示全部楼层
很需要需要需要

0

热度

9

元宝

7

贡献

步入草根

发表于 2018-11-29 22:36:14 | 显示全部楼层
啊啊啊啊啊啊

189

热度

440

元宝

2

贡献

步入草根

发表于 2018-12-2 12:34:57 来自手机 | 显示全部楼层
不错,我喜欢这个。

43

热度

95

元宝

29

贡献

步入草根

发表于 2018-12-3 14:30:47 | 显示全部楼层
没看到有366行,一共才327行

4

热度

11

元宝

8

贡献

步入草根

发表于 2018-12-3 20:29:35 | 显示全部楼层
是呀,discuz3.4一共才327行

70

热度

144

元宝

29

贡献

步入草根

发表于 2018-12-5 10:12:51 | 显示全部楼层
Discuz!X3.4 QQ互联
下一页 »
1234下一页
返回列表 发新帖
 懒得打字嘛,点击右侧快捷回复【最新发布】   【赞助草根吧享更多权益】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

收藏帖子 返回列表 搜索

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

小黑屋|手机版|草根吧