帝国cms /e/memberconnect/qq/loginend.php QQ互联 QQ登陆 文件详细解释、代码注释

<?php
require('../../class/connect.php');
require('../../class/db_sql.php');
require('../../class/q_functions.php');
require('../../member/class/user.php');
eCheckCloseMods('member');//验证是否关闭前台会员模块
eCheckCloseMods('mconnect');//验证是否关闭前台外部登录模块
$link=db_connect();
$empire=new mysqlquery();
$editor=1;
eCheckCloseMemberConnect();//验证外部登录是否开启
session_start();
require('../memberconnectfun.php');
$apptype='qq';
$appr=$empire->fetch1("select * from {$dbtbpre}enewsmember_connect_app where apptype='$apptype' and isclose=0 limit 1");
if(!$appr['id'])
{
printerror2('请选择登录方式','../../../');
}
$app_id=$appr['appid'];//应用的APPID
$app_secret=$appr['appkey'];//应用的APPKEY
$ReturnUrlQz=eReturnDomainSiteUrl();//返回域名网站地址
$my_url=$ReturnUrlQz.'e/memberconnect/qq/loginend.php';//成功授权后的回调地址

if(!$_SESSION['state']||$_SESSION['state']!=$_REQUEST['state'])
{
printerror2('来自的链接不存在','../../../');
}
$code=RepPostVar($_REQUEST['code']);//成功授权后返回的$_REQUEST['code']
//拼接URL
$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;
$response=@file_get_contents($token_url);
if(strpos($response,"callback")!==false)
{
$lpos=strpos($response,"(");
$rpos=strrpos($response,")");
$response=substr($response,$lpos+1,$rpos-$lpos-1);

//mixed json_decode(string $json [,bool $assoc=false [,int $depth=512 [,int $options=0]]])
//接受一个JSON编码的字符串并且把它转换为PHP变量
//参数
//json 待解码的json string格式的字符串。这个函数仅能处理UTF-8编码的数据。
//assoc 当该参数为TRUE时, 将返回array而非object。
//depth 指定递归深度。
//options JSON解码的掩码选项。现在有两个支持的选项, 第一个是JSON_BIGINT_AS_STRING, 用于将大整数转为字符串而非默认的float类型。第二个是JSON_OBJECT_AS_ARRAY, 与将assoc设置为TRUE有相同的效果。

$msg=json_decode($response);
if(isset($msg->error))
{
echo"

支付宝转账赞助

支付宝扫一扫赞助

微信转账赞助

微信扫一扫赞助

留言与评论(共有 0 条评论)
   
验证码: