diff --git a/upload/source/class/class_member.php b/upload/source/class/class_member.php index d6ec24643abe98d670d018ce7aee9bf1d639a065..a66f072be72fbae4353c5b711869799618c0e63d 100644 --- a/upload/source/class/class_member.php +++ b/upload/source/class/class_member.php @@ -374,9 +374,13 @@ class register_ctl { } } elseif(!$this->setting['regstatus']) { if($this->setting['regconnect']) { - dheader('location:connect.php?mod=login&op=init&referer=forum.php&statfrom=login_simple'); + //不是QQ互联登录则跳转到QQ互联,避免越权完成普通注册 + if(CURMODULE != 'connect'){ + dheader('location:connect.php?mod=login&op=init&referer=forum.php&statfrom=login_simple'); + } + }else{ + showmessage(!$this->setting['regclosemessage'] ? 'register_disable' : str_replace(array("\r", "\n"), '', $this->setting['regclosemessage'])); } - showmessage(!$this->setting['regclosemessage'] ? 'register_disable' : str_replace(array("\r", "\n"), '', $this->setting['regclosemessage'])); } } diff --git a/upload/source/module/member/member_connect.php b/upload/source/module/member/member_connect.php index 412b841dcfd13fef5bab1eb86f0ab63106c01343..ec1fe7bfdb9b4c570d3f5f91f1a187af1b9777dc 100644 --- a/upload/source/module/member/member_connect.php +++ b/upload/source/module/member/member_connect.php @@ -95,7 +95,10 @@ if($_GET['action'] == 'login') { // debug 已有账号,绑定我的账号走 $ctl_obj->setting['secqaa']['status'] = $_G['setting']['secqaa']['status']; } - $ctl_obj->setting['ignorepassword'] = 1; + //兼容手机端有填写密码的情况 + if(!defined('IN_MOBILE') || empty($_GET[$_G['setting']['reginput']['password']])) { + $ctl_obj->setting['ignorepassword'] = 1; + } $ctl_obj->setting['checkuinlimit'] = 1; $ctl_obj->setting['strongpw'] = 0; $ctl_obj->setting['pwlength'] = 0; diff --git a/upload/source/module/member/member_connect_register.php b/upload/source/module/member/member_connect_register.php index c3e2cfe40235383a66e53d5e1fdd5b56d12033d1..739697e7381c7ef1f2d265e8a519ce96773a4cbc 100644 --- a/upload/source/module/member/member_connect_register.php +++ b/upload/source/module/member/member_connect_register.php @@ -12,7 +12,8 @@ if(!defined('IN_DISCUZ')) { } $from_connect = $_G['setting']['connect']['allow'] ? 1 : 0; -$regname = 'connect'; +//PC用的 $regname,手机用的 $_G['setting']['regname'] +$_G['setting']['regname'] = $regname = 'connect'; if(empty($_POST)) { @@ -88,7 +89,7 @@ if(empty($_POST)) { 'conopenid' => $conopenid, 'conispublishfeed' => $conispublishfeed, 'conispublisht' => $conispublisht, - 'conisregister' => '1', + 'conisregister' => $this->setting['ignorepassword'] ? '1' : '0', 'conisqzoneavatar' => '0', 'conisfeed' => '1', 'conisqqshow' => '0', diff --git a/upload/source/plugin/qqconnect/connect.class.php b/upload/source/plugin/qqconnect/connect.class.php index 1a6c3b7d542f8e29d1c1876fbfeda91c3d792003..e8793d6e4c9d1cec0cc46094872a3d1891a2ac5d 100644 --- a/upload/source/plugin/qqconnect/connect.class.php +++ b/upload/source/plugin/qqconnect/connect.class.php @@ -283,4 +283,29 @@ class mobileplugin_qqconnect extends plugin_qqconnect_base { } } +} + +class mobileplugin_qqconnect_member extends mobileplugin_qqconnect { + + function connect_member() { + global $_G, $seccodecheck, $secqaacheck, $connect_guest; + + if($this->allow) { + if($_G['uid'] && $_G['member']['conisbind']) { + dheader('location: '.$_G['siteurl'].'index.php'); + } + $connect_guest = array(); + if($_G['connectguest'] && (submitcheck('regsubmit', 0, $seccodecheck, $secqaacheck) || submitcheck('loginsubmit', 1, $seccodestatus))) { + if(!$_GET['auth_hash']) { + $_GET['auth_hash'] = $_G['cookie']['con_auth_hash']; + } + $conopenid = authcode($_GET['auth_hash']); + $connect_guest = C::t('#qqconnect#common_connect_guest')->fetch($conopenid); + if(!$connect_guest) { + dsetcookie('con_auth_hash'); + showmessage('qqconnect:connect_login_first'); + } + } + } + } } \ No newline at end of file