ACT_msg($msgUrl, $msg, $status); } function getmsgurl() { if (ismobileuser()) {//当前为wap登录 if ($this->config['sy_wapdomain'] != "") { if ($this->config['sy_wapssl'] == '1') { $protocol = 'https://'; } else { $protocol = 'http://'; } if (strpos($this->config['sy_wapdomain'], 'http://') === false && strpos($this->config['sy_wapdomain'], 'https://') === false) { $msgurl = $protocol . $this->config['sy_wapdomain']; } else { $msgurl = $this->config['sy_wapdomain']; } } else { $msgurl = $this->config['sy_weburl'] . '/wap/'; } } else { $msgurl = $this->config['sy_weburl']; } return $msgurl; } function index_action() { $UserinfoM = $this->MODEL('userinfo'); $code = $_GET['code']; $msgUrl = $this->getMsgUrl(); if ($_GET['login'] != '1') { if ($this->uid != '' && $this->username != '' && empty($code)) { $this->actMsg($msgUrl, '您已经登录了!'); } } if ($this->config['sy_qqlogin'] != '1') { $this->actMsg($msgUrl, '对不起,QQ绑定已关闭!'); } $this->seo('qqlogin'); $app_id = $this->config['sy_qqappid']; $app_secret = $this->config['sy_qqappkey']; $my_url = $this->config['sy_weburl'] . '/qqlogin.php'; session_start(); if (empty($code)) { $_SESSION['state'] = md5(uniqid(rand(), TRUE)); $dialog_url = 'https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=' . $app_id . '&redirect_uri=' . urlencode($my_url) . '&state=' . $_SESSION['state']; echo(""); } if ($_GET['state'] == $_SESSION['state']) { $token_url = "https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&" . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url) . "&client_secret=" . $app_secret . "&code=" . $code; if (!function_exists('curl_init')) { echo "请开启CURL函数,否则将无法进行下一步操作!"; die(); } $response = CurlGet($token_url); if (strpos($response, "callback") !== false) { $lpos = strpos($response, "("); $rpos = strrpos($response, ")"); $response = substr($response, $lpos + 1, $rpos - $lpos - 1); $msg = json_decode($response); if (isset($msg->error)) { echo "

error:

" . $msg->error; echo "

msg :

" . $msg->error_description; exit(); } } $params = array(); parse_str($response, $params); $graph_url = "https://graph.qq.com/oauth2.0/me?access_token=" . $params['access_token']; // QQ互联平台的移动应用和网站应用打通之后可以获取unionid if ($this->config['sy_qqdt'] == 1) { $graph_url .= "&unionid=1"; } $str = CurlGet($graph_url); if (strpos($str, "callback") !== false) { $lpos = strpos($str, "("); $rpos = strrpos($str, ")"); $str = substr($str, $lpos + 1, $rpos - $lpos - 1); } $user = json_decode($str); if (isset($user->error)) { echo "

error:

" . $user->error; echo "

msg :

" . $user->error_description; exit(); } if ($user->openid != "") { $qqwhere['qqid'] = $user->openid; if (!empty($user->unionid)) { $qqwhere['qqunionid'] = array('=', $user->unionid, 'OR'); } $userinfo = $UserinfoM->getInfo($qqwhere); if (is_array($userinfo)) { if ($userinfo['usertype'] > 0) { if ($userinfo['status'] == '2' || $userinfo['status'] == '4') { $this->ACT_msg(Url(), '您的帐号被锁定,请联系客服解除锁定!'); exit(); } $qqdata = array( 'login_date' => time() ); if ($user->unionid) { $qqdata['qqunionid'] = $user->unionid; } $userwhere['uid'] = $userinfo['uid']; $UserinfoM->upInfo($userwhere, $qqdata); // 会员日志,记录手动登录 $LogM = $this->MODEL('log'); $LogM->addMemberLog($userinfo['uid'], $userinfo['usertype'], 'PC QQ登录成功'); $logtime = date("Ymd", $userinfo['login_date']); $nowtime = date("Ymd", time()); if ($this->config['resume_sx'] == 1 && $userinfo['usertype'] == 1) { $resumeM = $this->MODEL('resume'); $resume = $resumeM->getResumeInfo(array('uid' => $userinfo['uid']), array('field' => '`def_job`')); if ($resume['def_job']) { $resumeM->upInfo(array('id' => $resume['def_job']), array('eData' => array('lastupdate' => time()))); $resumeM->upResumeInfo(array('uid' => $userinfo['uid']), array('rData' => array('lastupdate' => time()), 'port' => 1)); } } if ($logtime != $nowtime) { $this->MODEL('integral')->invtalCheck($userinfo['uid'], $userinfo['usertype'], "integral_login", "会员登录", 22); $logdata['uid'] = $userinfo['uid']; $logdata['usertype'] = $userinfo['usertype']; $logdata['did'] = $userinfo['did']; $logdata['content'] = 'WAP微信登录'; $LogM->addLoginlog($logdata); } } if ($this->config['sy_uc_type'] == "uc_center") { $this->obj->uc_open(); $user = uc_get_user($userinfo['username']); $ucsynlogin = uc_user_synlogin($user[0]); $this->cookie->unset_cookie(); $this->cookie->add_cookie($userinfo['uid'], $userinfo['username'], $userinfo['salt'], $userinfo['email'], $userinfo['password'], $userinfo['usertype'], $this->config['sy_logintime'], $userinfo['did']); $this->actMsg($msgUrl, "登录成功!" . $ucsynlogin); } else { $this->cookie->unset_cookie(); $this->cookie->add_cookie($userinfo['uid'], $userinfo['username'], $userinfo['salt'], $userinfo['email'], $userinfo['password'], $userinfo['usertype'], $this->config['sy_logintime'], $userinfo['did']); $this->actMsg($msgUrl, "登录成功!"); } } else { $_SESSION['qq']["openid"] = $user->openid; $_SESSION['qq']["unionid"] = $user->unionid; $_SESSION['qq']["tooken"] = $params['access_token']; $_SESSION['qq']["logininfo"] = "您已登录QQ,请绑定您的帐户!"; if ($this->uid) { $data1 = array( 'qqid' => '' ); $where1['qqid'] = $_SESSION['qq']["openid"]; if (!empty($_SESSION['qq']["unionid"])) { $where1['qqunionid'] = array('=', $_SESSION['qq']["unionid"], 'OR'); } $UserinfoM->upInfo($where1, $data1); $data2 = array( 'qqid' => $_SESSION['qq']["openid"], 'qqunionid' => $_SESSION['qq']["unionid"], ); $where2['uid'] = $this->uid; $UserinfoM->upInfo($where2, $data2); $this->actMsg($msgUrl . "/member/index.php?c=binding", "QQ 登录绑定成功!"); } else { $GetUrl = "https://graph.qq.com/user/get_user_info?oauth_consumer_key=" . $this->config['sy_qqappid'] . "&access_token=" . $_SESSION['qq']['tooken'] . "&openid=" . $_SESSION['qq']['openid'] . "&format=json"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $GetUrl); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); $str = curl_exec($ch); curl_close($ch); $user = json_decode($str, true); if ($user['nickname']) { $_SESSION['qq']['nickname'] = $user['nickname']; $_SESSION['qq']['pic'] = $user['figureurl_qq_2']; } else { $this->actMsg($msgUrl, "用户信息获取失败,请重新登录QQ!"); } header("location:" . Url("qqconnect", array("c" => "qqbind", "type" => 'ba'))); } } } } else { echo("The state does not match. You may be a victim of CSRF."); } } function qqbind_action() { $this->yunset('qqlogin'); $this->yun_tpl(array('index')); } /** * @desc 邮箱认证 */ function cert_action() { $id = $_GET['id']; $arr = @explode("|", base64_decode($id)); $arr[0] = intval($arr[0]);//uid $arr[1] = intval($arr[1]);//随机吗 $arr[3] = trim($arr[3]);//邮件账号 if (!CheckRegEmail($arr[3])) { $this->ACT_msg($_SERVER['HTTP_REFERER'], "非法操作!", 8); } elseif ($id && is_array($arr) && $arr[0] && $arr[2] == $this->config['coding']) { $CompanyM = $this->MODEL('company'); $UserinfoM = $this->MODEL('userinfo'); $user = $UserinfoM->getInfo(array('uid' => $arr[0]), array('field' => 'usertype')); $data = array( 'usertype' => $user['usertype'], 'email' => $arr[3] ); $err = $CompanyM->upCertInfo(array('uid' => $arr[0], 'check2' => $arr[1], 'check' => $arr[3]), array('status' => '1'), $data); if ($err['errcode'] == '9') { $UA = strtoupper($_SERVER['HTTP_USER_AGENT']); if (strpos($UA, 'WINDOWS NT') !== false) { header('location:' . $this->config['sy_weburl'] . '/index.php?m=register&c=ok&type=4'); } else { $this->ACT_msg(Url('wap'), $err['msg'], 9); } } else { $this->ACT_msg($_SERVER['HTTP_REFERER'], $err['msg'], 8); } } else { $this->ACT_msg($_SERVER['HTTP_REFERER'], "非法操作!", 8); } } function mcert_action() { $UserinfoM = $this->MODEL('userinfo'); $id = $_GET['id']; $arr = @explode("|", base64_decode($id)); $arr[0] = intval($arr[0]); if ($id && is_array($arr) && $arr[0] && $arr[2] == $this->config['coding']) { $where['uid'] = $arr[0]; $resumedata = array( 'email_status' => 1 ); $memberdata = array( 'email_status' => 1 ); $userinfoM = $this->MODEL('userinfo'); $nid = $userinfoM->UpdateUserInfo(array('usertype' => 1, 'post' => $resumedata), $where); $userinfoM->upInfo($where, $memberdata); $nid ? $this->ACT_msg(Url('login'), "激活成功,请登录!", 9) : $this->ACT_msg($this->config['sy_weburl'], "激活失败,联系管理员认证!", 8); } else { $this->ACT_msg($_SERVER['HTTP_REFERER'], "非法操作!", 8); } } } ?>