www.gusucode.com > 74cms PHP骑士人才系统 v3.5.1源码程序 > code/upload/wap/connect_qq_client.php
<?php /* * 74cms QQ互联 client-side模式 * ============================================================================ * 版权所有: 骑士网络,并保留所有权利。 * 网站地址: http://www.74cms.com; * ---------------------------------------------------------------------------- * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和 * 使用;不允许对程序代码以任何形式任何目的的再发布。 * ============================================================================ */ define('IN_QISHI', true); require_once(dirname(__FILE__).'/../include/plus.common.inc.php'); $act = !empty($_GET['act']) ? trim($_GET['act']) : 'QQlogin'; if($act == 'QQlogin') { $url="https://graph.qq.com/oauth2.0/authorize?response_type=token&client_id={$_CFG['qq_appid']}&redirect_uri={$_CFG['wap_domain']}/connect_qq_client.php".urlencode('?act=login_check'); header("Location:{$url}"); } elseif ($act=='login_check') { $html ="<script type=\"text/javascript\" src=\"http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js\" charset=\"utf-8\" data-callback=\"true\"></script> "; $html.="<script type=\"text/javascript\">"; $html.="if(QC.Login.check())"; $html.="{"; $html.="QC.Login.getMe(function(openId, accessToken)"; $html.="{"; $html.="window.location.href = '?act=login_go&openid='+openId+'&accessToken='+accessToken;"; $html.="});"; $html.="}"; $html.="</script>"; exit($html); } elseif ($act=='login_go') { $_SESSION["openid"] = trim($_GET['openid']); $_SESSION["accessToken"] = trim($_GET['accessToken']); if (empty($_SESSION["openid"])) { exit('登录失败!openid获取不到'); } else { require_once(QISHI_ROOT_PATH.'include/mysql.class.php'); $db = new mysql($dbhost,$dbuser,$dbpass,$dbname); unset($dbhost,$dbuser,$dbpass,$dbname); require_once(QISHI_ROOT_PATH.'include/fun_user.php'); $user=get_user_inqqopenid($_SESSION["openid"]); if (!empty($user)) { update_user_info($user['uid']); if($user['utype']==1){ $userurl="company/wap_user.php"; }elseif($user['utype']==2){ $userurl="personal/wap_user.php"; } header("Location:{$userurl}"); } else { if (!empty($_SESSION['uid']) && !empty($_SESSION['utype']) && !empty($_SESSION['openid'])) { require_once(QISHI_ROOT_PATH.'include/tpl.inc.php'); $db->query("UPDATE ".table('members')." SET qq_openid = '{$_SESSION['openid']}' WHERE uid='{$_SESSION[uid]}' AND qq_openid='' LIMIT 1"); $_SESSION['uqqid']=$_SESSION['openid']; exit('绑定QQ帐号成功!'); } else { header("Location:?act=reg"); } } } } elseif ($act=='reg') { if (empty($_SESSION["openid"])) { exit("openid is empty"); } else { $url = "https://graph.qq.com/user/get_user_info?access_token=".$_SESSION['accessToken']."&oauth_consumer_key={$_CFG['qq_appid']}&openid=".$_SESSION["openid"]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); curl_close($ch); $jsoninfo = json_decode($output, true); $nickname = iconv("utf-8","gbk",$jsoninfo["nickname"]); require_once(QISHI_ROOT_PATH.'include/tpl.inc.php'); $smarty->assign('title','补充信息 - '.$_CFG['site_name']); $smarty->assign('qqurl',"?act="); $smarty->assign('nickname',$nickname); $smarty->display('wap/wap-bind.html'); } } elseif ($act=='reg_save') { if (empty($_SESSION["openid"])) { exit("openid is empty"); } $val['username']=!empty($_POST['username'])?trim($_POST['username']):exit("输入用户名"); $val['email']=!empty($_POST['email'])?trim($_POST['email']):exit("输入邮箱"); $val['member_type']=intval($_POST['member_type']); $val['password']=!empty($_POST['password'])?trim($_POST['password']):exit("输入密码"); if($val['password']!=trim($_POST['rpassword'])){ exit("密码不一致"); } require_once(QISHI_ROOT_PATH.'include/mysql.class.php'); $db = new mysql($dbhost,$dbuser,$dbpass,$dbname); unset($dbhost,$dbuser,$dbpass,$dbname); require_once(QISHI_ROOT_PATH.'include/fun_user.php'); $sql="select * from ".table("members")." where username='$val[username]' or email='$val[email]'"; $row = $db->getall($sql); if(!empty($row)){ exit("用户名或邮箱已经存在!"); } $userid=user_register($val['username'],$val['password'],$val['member_type'],$val['email']); if ($userid) { $db->query("UPDATE ".table('members')." SET qq_openid = '{$_SESSION['openid']}' WHERE uid='{$userid}' AND qq_openid='' LIMIT 1"); update_user_info($userid); exit("ok"); } else { require_once(QISHI_ROOT_PATH.'include/tpl.inc.php'); exit("reg_err"); } } elseif($act == 'binding') { $url="https://graph.qq.com/oauth2.0/authorize?response_type=token&client_id={$_CFG['qq_appid']}&redirect_uri={$_CFG['wap_domain']}/connect_qq_client.php".urlencode('?act=binding_check'); header("Location:{$url}"); } elseif ($act=='binding_check') { $html ="<script type=\"text/javascript\" src=\"http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js\" charset=\"utf-8\" data-callback=\"true\"></script> "; $html.="<script type=\"text/javascript\">"; $html.="if(QC.Login.check())"; $html.="{"; $html.="QC.Login.getMe(function(openId, accessToken)"; $html.="{"; $html.="window.location.href = '?act=binding_callback&openid='+openId;"; $html.="});"; $html.="}"; $html.="</script>"; exit($html); } elseif ($act=='binding_callback') { if (empty($_SESSION['uid']) || empty($_SESSION['utype'])) { exit("error"); } $_SESSION["openid"] = trim($_GET['openid']); if (empty($_SESSION['openid'])) { exit("error"); } require_once(QISHI_ROOT_PATH.'include/mysql.class.php'); $db = new mysql($dbhost,$dbuser,$dbpass,$dbname); unset($dbhost,$dbuser,$dbpass,$dbname); require_once(QISHI_ROOT_PATH.'include/fun_user.php'); $user=get_user_inqqopenid($_SESSION["openid"]); require_once(QISHI_ROOT_PATH.'include/tpl.inc.php'); if (!empty($user)) { exit('此QQ帐号已经绑定了其他会员,请换一个QQ帐号!'); } else { $db->query("UPDATE ".table('members')." SET qq_openid = '{$_SESSION['openid']}' WHERE uid='{$_SESSION[uid]}' AND qq_openid='' LIMIT 1"); $_SESSION['uqqid']=$_SESSION['openid']; exit('绑定QQ帐号成功!'); } } ?>