最近要用到QQ登录,要求可以和织梦的用户同步。刚刚改好,一团乱,但是能登录了~~存个档吧~~admin管理员组文章数量:1615477
<?php
/**
* 腾讯织梦同步登录程序
*
* @version 11:06 2011年11月04日
* @package open.qq
* @copyright Copyright (c) 20011 - 2012, jackqn@msn.
* @link http://blog.csdn/jackqn
* 用户名(如果用户跳过注册则提交openid),密码,openid,昵称,头像。性别
* call_user_func(CheckUser,用户名,密码,openid,昵称,头像,性别,access_token);
* 放于member文件夹下
*/
require_once("config.php");
error_reporting(0);
$params = $_POST;
$params['nickname']= iconv('UTF-8', 'gb2312', $params['nickname']);
$params['figureurl_2']= iconv('UTF-8', 'gb2312', $params['figureurl_2']);
$params['gender']= iconv('UTF-8', 'gb2312', $params['gender']);
//call_user_func(CheckUser,用户名,密码,openid,昵称,头像,性别,access_token);
$denglu=call_user_func(CheckUser,$params['user'],md5($params['pass']),$params["openid"],$params["nickname"],$params["figureurl_2"],$params["gender"],$params['access_token']);
if($denglu==1){
ShowMsg("成功登录,5秒钟后转向系统主页...","index.php",0,2000);
}else{
ShowMsg("登录出错!", "-1", 0, 2000);
exit();
}
//检查用户是否可以登录
function CheckUser($loginuser, $loginpwd,$openid,$nichkname,$figureurl,$gender,$access_token)
{
global $dsql;$access_time=time();
$row = $dsql->GetOne("SELECT mid,matt,pwd,logintime FROM `#@__member` WHERE openid = '$openid' ");
if(is_array($row))
{//找到用户执行登录
$dsql->ExecuteNoneQuery("Update `#@__member` set `access_token`='$access_token',`access_time`='$access_time' WHERE openid = '$openid' ");
putlogin($row['mid']);
return 1;
}
else
{
//未找到用户,添加用户
if($loginuser=='')
{
//用openid的前6位位作为用户名和密码
$loginuser=substr($openid, 0, 6);
$loginpwd=substr($openid, 0, 6);
}
//注册织梦会员
$row = $dsql->GetOne("SELECT `money`,`scores` FROM `#@__arcrank` WHERE `rank`='10' ");
$scores = is_array($row) ? $row['scores'] : 0;
$money = is_array($row) ? $row['money'] : 0;
$logintime = $jointime = time();
$loginip = $joinip = GetIP();
$res = $dsql->ExecuteNoneQuery("INSERT INTO #@__member SET `mtype`='个人',`userid`='$loginuser',`pwd`='$loginpwd',`uname`='$nichkname',`sex`='$gender' ,`rank`='10',`money`='$money', `email`='$email', `scores`='$scores', `matt`='0', `face`='$figureurl',`safequestion`='0',`safeanswer`='', `jointime`='$jointime',`joinip`='$joinip',`logintime`='$logintime',`loginip`='$loginip',`openid`='$openid',`access_token`='$access_token',`access_time`='$access_time';");
if($res) {
$mid = $dsql->GetLastID();
$data = array
(
0 => "INSERT INTO `#@__member_person` SET `mid`='$mid', `onlynet`='1', `sex`='$gender', `uname`='$nichkname', `qq`='', `msn`='', `tel`='', `mobile`='', `place`='', `oldplace`='0' ,
`birthday`='1980-01-01', `star`='1', `income`='0', `education`='0', `height`='160', `bodytype`='0', `blood`='0', `vocation`='0', `smoke`='0', `marital`='0', `house`='0',
`drink`='0', `datingtype`='0', `language`='', `nature`='', `lovemsg`='', `address`='',`uptime`='0';",
1 => "INSERT INTO `#@__member_tj` SET `mid`='$mid',`article`='0',`album`='0',`archives`='0',`homecount`='0',`pagecount`='0',`feedback`='0',`friend`='0',`stow`='0';",
2 => "INSERT INTO `#@__member_space` SET `mid`='$mid',`pagesize`='10',`matt`='0',`spacename`='{$nichkname}的空间',`spacelogo`='',`spacestyle`='person', `sign`='',`spacenews`='';",
3 => "INSERT INTO `#@__member_flink` SET `mid`='$mid', `title`='网站', `url`='#';"
);
foreach($data as $val) $dsql->ExecuteNoneQuery($val);
}
//重新执行登录
$row = $dsql->GetOne("SELECT mid,matt,pwd,logintime FROM `#@__member` WHERE openid = '$openid' ");
if(is_array($row))
{
putlogin($row['mid']);
return 1;
}else{
return 0;
}
}
}
//登录
function putlogin($uid)
{
global $dsql;
$LoginTime = time();
$loginip = GetIP();
$inquery = "UPDATE `#@__member` SET loginip='$loginip',logintime='".$LoginTime."' WHERE mid='".$uid."'";
$dsql->ExecuteNoneQuery($inquery);
putcookie('DedeUserID',$uid);
putcookie('DedeLoginTime',$LoginTime);
}
function putcookie($key, $value, $kptime=3600000, $pa="/")
{
global $cfg_cookie_encode,$cfg_domain_cookie;
SetCookie($key, $value, time()+$kptime, $pa,$cfg_domain_cookie);
SetCookie($key.'__ckMd5', substr(md5($cfg_cookie_encode.$value),0,16), time()+$kptime, $pa,$cfg_domain_cookie);
}
?>
版权声明:本文标题:QQ登录获取openid后用户同步 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1726253895a1062744.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论