<?php
|
|
/**
|
* $Author :PHPYUN开发团队
|
*
|
* 官网: http://www.phpyun.com
|
*
|
* 版权所有 2009-2021 宿迁鑫潮信息技术有限公司,并保留所有权利。
|
*
|
* 软件声明:未经授权前提下,不得用于商业运营、二次开发以及任何形式的再次发布。
|
*/
|
|
class index_controller extends common
|
{
|
function actMsg($msgUrl, $msg, $status = 8)
|
{
|
$this->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("<script> top.location.href='" . $dialog_url . "'</script>");
|
}
|
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 "<h3>error:</h3>" . $msg->error;
|
echo "<h3>msg :</h3>" . $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 "<h3>error:</h3>" . $user->error;
|
echo "<h3>msg :</h3>" . $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);
|
|
}
|
|
}
|
}
|
|
?>
|