民审-M

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

作者:民审-M   发布时间:2018-11-16 16:37   回复数:13   浏览数:128
民审-M
12813民审-M金牌草根
热门 加亮 2018-11-16 16:37:15
12813 热门 加亮 2018-11-16 16:37:15
本帖最后由 民审-M 于 2018-11-16 16:46 编辑

[font=宋体, "]网上有很多 关于[font=宋体, "]discuz中QQ互联登录跳过完善资料直接登录的教材,但实际使用时,发现各个方法要么不成功,[font=宋体, "]要么收费,[font=宋体, "]要么存在缺陷,比如:
[font=宋体, "]1. 使用该功能必须关闭注册时的验证码,否则无法生效!
[font=宋体, "][font="]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里面,不想复制代码也可以直接下载附件,覆盖文件即可
代码如下:
loaducenter();
                                //创建账号并登陆
                 $username = trim(dhtmlspecialchars($insert_arr['conqqnick']));
                                 if($username==''){$username = 'qquser_'.time();}
                 $password = md5(random(10));
                 $email = 'hl'.time() . '@qq.com';
                 $uid = uc_user_register($username, $password, $email);
               if ($uid <= 0) {
                    if ($uid == -1 || $uid == -3) {
                        $username .= time();
                        $uid = uc_user_register($username, $password, $email);        
                                                 if ($uid <= 0) {
                                                 $username = 'qquser_'.time();
                         $uid = uc_user_register($username, $password, $email);        
                                                 if($uid <=0){
                                                  showmessage(\"$username注册UC失败\",$referer);exit();
                                                 }
                                                 }                                                
                    } elseif ($uid == -2) {
                        showmessage('包含不允许注册的词语',$referer);
                    } elseif ($uid == -4) {
                        showmessage('Email 格式有误',$referer);
                    } elseif ($uid == -5) {
                        showmessage('Email 不允许注册',$referer);
                    } else {
                        showmessage('其他错误',$referer);
                    }
                }
                //插入common_member
                $init_arr = array('credits' => explode(',', $_G['setting']['initcredits']));
                $groupid =  10 ;//默认新手上路组
                C::t('common_member')->insert($uid, $username, $password, $email, $_G['clientip'], $groupid, $init_arr);
               //会员绑定openid
                C::t('#qqconnect#common_member_connect')->insert(
                   !$_G['setting']['connect']['oauth2'] ? array(
                       'uid' => $uid,
                       'conuin' => $conuin,
                       'conuinsecret' => $conuinsecret,
                       'conopenid' => $conopenid,
                       'conispublishfeed' => $conispublishfeed,
                       'conispublisht' => $conispublisht,
                       'conisregister' => 0,
                       'conisfeed' => 1,
                       'conisqqshow' => $isqqshow,
                   ) : array(
                       'uid' => $uid,
                       'conuin' => '',
                       'conuintoken' => $conuintoken,
                       'conopenid' => $conopenid,
                       'conispublishfeed' => $conispublishfeed,
                       'conispublisht' => $conispublisht,
                       'conisregister' => 0,
                       'conisfeed' => 1,
                       'conisqqshow' => $isqqshow,
                   )
               );
               //更新是否绑定
             C::t('common_member')->update($uid, array('conisbind' => '1'));
               //模拟登录
               $connect_member = C::t('#qqconnect#common_member_connect')->fetch_fields_by_openid($conopenid, $fields);
               connect_login($connect_member);
               //最后一次登录状态
               C::t('common_member_status')->update($uid, array('lastip' => $_G['clientip'], 'lastvisit' => TIMESTAMP, 'lastactivity' => TIMESTAMP));
               C::t('#qqconnect#common_connect_guest')->delete($conopenid);
                           //更新新注册用户缓存
                           if(!function_exists('build_cache_userstats')) {        require_once libfile('cache/userstats', 'function'); }
                   build_cache_userstats();
                //省去用户绑定的话,这里可以直接创建一个账号并绑定
                //$referer = 'member.php?mod=connect&referer='.urlencode($referer);
                                $utilService->redirect($referer);

懒人包下载:
本部分内容设定了隐藏,需要回复后才能看到

caifa348
沙发caifa348步入草根 2025-11-09 19:43
支持楼主
www.hltj90.com
板凳www.hltj90.com 2018-12-12 00:13
找不到位置
走走
地板走走终身ViP 2018-12-08 20:02
谢谢了
千羽伪装
4楼千羽伪装步入草根 2018-12-08 02:23

谢谢大佬,在这里做个伸手党了
Rain陌尘
5楼Rain陌尘步入草根 2018-12-05 10:12
Discuz!X3.4 QQ互联
语音定制
6楼语音定制 2018-12-03 20:29
是呀,discuz3.4一共才327行
春风桃李花开日
7楼春风桃李花开日步入草根 2018-12-03 14:30
没看到有366行,一共才327行
GBOY
8楼GBOY步入草根 2018-12-02 12:34
不错,我喜欢这个。
忽忽
9楼忽忽 2018-11-29 22:36
啊啊啊啊啊啊
我深知时间会走你也会走
10楼我深知时间会走你也会走 2018-11-25 03:14
很需要需要需要
吼嗨嗓!
11楼吼嗨嗓!步入草根 2018-11-22 14:10
成功是在道路上磕磕绊绊后的成果
子默是我
12楼子默是我 2018-11-22 09:51
谢谢大佬,在这里做个伸手党了
一抹冷笑
13楼一抹冷笑步入草根 2018-11-17 23:06
很不错的样子啊
游客
登录后才可以回帖,登录 或者 注册