马上注册,免费下载更多dz插件网资源。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
Discuz!X3.5 QQ互联登陆跳过完善资料或绑定账号直接以QQ昵称自动注册无感知登陆免完善资料登录教程:
网上有很多 关于discuz中QQ互联登录跳过完善资料直接登录的教材,但实际使用时,发现各个方法要么不成功,要么收费,要么存在缺陷,比如:
1. 使用该功能必须关闭注册时的验证码,否则无法生效!
2. 本方法在DISCUZ X3.5及以下下测试完全正常,其他版本慎用。还有很多:http://jingyan.baidu.com/article/2f9b480d5823d941cb6cc22b.html 比如百度文库的 修改默认用户组为普通之类的 根本不会成功.现本人通过研究得出的操作结果,也是本站QQ快捷登录实例,教材发布出来
说明:
(1)本教材适合dzX3.5以下任何版本
(2)本方法无需关闭注册验证码之类
(3)登录用户名默认是QQ昵称,如果注册不成功会自动加上时间戳保证用户名唯一再注册
(4)由于QQ快捷登录是不能获得邮箱的,所以以唯一时间戳数字@qq.com方式填入,注册成功后用户可以自行修改
(5)代码重点:在DZ中如何代码实现自动添加账号并登录成功!
操作简单:
(1)成功安装QQ互联
(2)直接复制代码到 \source\plugin\qqconnect\connect\connect_login.php 行278 else里面,不想复制代码也可以直接下载附件,覆盖文件即可
代码如下:也就是在
- if (substr($mobileId, 0, 7) == 'Mobile_') {
- showmessage('login_succeed', $referer);
- } 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);
复制代码 注意:
原来的这两行使用上面的内容添加后 删除下面这两句,重复了(也就是原来的279,280行):
- $referer = 'member.php?mod=connect&referer='.urlencode($referer);
- $utilService->redirect($referer);
复制代码 懒人包下载:【UTF8的需要自己转码,建议对比下面懒人包手工修改最准确!】
©dz插件网所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,得到更好的正版服务。 如有侵权请邮件与我们联系处理:discuz-x@qq.com(手机随时接收邮件)并出示相关证明以便删除。敬请谅解!
|
|