You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1200 lines
27 KiB
1200 lines
27 KiB
<?php
|
|
if(!defined('InEmpireCMS'))
|
|
{
|
|
exit();
|
|
}
|
|
define('InEmpireCMSUser',TRUE);
|
|
|
|
//--------------- 扩展函数 ---------------
|
|
|
|
//登录附加cookie
|
|
function AddLoginCookie($r){
|
|
}
|
|
|
|
//--------------- 会员表信息函数 ---------------
|
|
|
|
//返回会员表
|
|
function eReturnMemberTable(){
|
|
global $ecms_config;
|
|
return $ecms_config['member']['tablename'];
|
|
}
|
|
|
|
//返回默认会员组ID
|
|
function eReturnMemberDefGroupid(){
|
|
global $ecms_config,$public_r;
|
|
$groupid=$ecms_config['member']['defgroupid']?$ecms_config['member']['defgroupid']:$public_r['defaultgroupid'];
|
|
return intval($groupid);
|
|
}
|
|
|
|
//返回查询会员字段列表
|
|
function eReturnSelectMemberF($f,$tb=''){
|
|
global $ecms_config;
|
|
if(empty($ecms_config['member']['chmember']))
|
|
{
|
|
if(!empty($tb))
|
|
{
|
|
$f=$f=='*'?$tb.$f:$tb.str_replace(',',','.$tb,$f);
|
|
}
|
|
return $f;
|
|
}
|
|
if($f=='*')
|
|
{
|
|
$f='userid,username,password,rnd,email,registertime,groupid,userfen,userdate,money,zgroupid,havemsg,checked,salt,userkey,ingid,agid,isern';
|
|
}
|
|
$r=explode(',',$f);
|
|
$count=count($r);
|
|
$selectf='';
|
|
$dh='';
|
|
for($i=0;$i<$count;$i++)
|
|
{
|
|
$truef=$r[$i];
|
|
if($ecms_config['memberf'][$truef]==$truef)
|
|
{
|
|
$selectf.=$dh.$tb.$truef;
|
|
}
|
|
else
|
|
{
|
|
$selectf.=$dh.$tb.$ecms_config['memberf'][$truef].' as '.$truef;
|
|
}
|
|
$dh=',';
|
|
}
|
|
return $selectf;
|
|
}
|
|
|
|
//返回插入会员字段列表
|
|
function eReturnInsertMemberF($f){
|
|
global $ecms_config;
|
|
if(empty($ecms_config['member']['chmember']))
|
|
{
|
|
return $f;
|
|
}
|
|
$r=explode(',',$f);
|
|
$count=count($r);
|
|
$insertf='';
|
|
$dh='';
|
|
for($i=0;$i<$count;$i++)
|
|
{
|
|
$truef=$r[$i];
|
|
$insertf.=$dh.$ecms_config['memberf'][$truef];
|
|
$dh=',';
|
|
}
|
|
return $insertf;
|
|
}
|
|
|
|
//取得实际会员字段
|
|
function egetmf($f){
|
|
global $ecms_config;
|
|
if(empty($ecms_config['member']['chmember']))
|
|
{
|
|
return $f;
|
|
}
|
|
return $ecms_config['memberf'][$f]?$ecms_config['memberf'][$f]:$f;
|
|
}
|
|
|
|
//密码
|
|
function eDoMemberPw($password,$salt){
|
|
global $ecms_config;
|
|
if($ecms_config['member']['pwtype']==0)//单重md5
|
|
{
|
|
$pw=md5($password);
|
|
}
|
|
elseif($ecms_config['member']['pwtype']==1)//明码
|
|
{
|
|
$pw=$password;
|
|
}
|
|
elseif($ecms_config['member']['pwtype']==3)//16位md5
|
|
{
|
|
$pw=substr(md5($password),8,16);
|
|
}
|
|
else//双重md5
|
|
{
|
|
$pw=md5(md5($password).$salt);
|
|
}
|
|
return $pw;
|
|
}
|
|
|
|
//验证密码
|
|
function eDoCkMemberPw($oldpw,$pw,$salt){
|
|
global $ecms_config;
|
|
$istrue=0;
|
|
if($ecms_config['member']['pwtype']==0)//单重md5
|
|
{
|
|
$oldpw=md5($oldpw);
|
|
if('dg'.$oldpw=='dg'.$pw)
|
|
{
|
|
$istrue=1;
|
|
}
|
|
}
|
|
elseif($ecms_config['member']['pwtype']==1)//明码
|
|
{
|
|
if('dg'.$oldpw=='dg'.$pw)
|
|
{
|
|
$istrue=1;
|
|
}
|
|
}
|
|
elseif($ecms_config['member']['pwtype']==3)//16位md5
|
|
{
|
|
$oldpw=substr(md5($oldpw),8,16);
|
|
if('dg'.$oldpw=='dg'.$pw)
|
|
{
|
|
$istrue=1;
|
|
}
|
|
}
|
|
else//双重md5
|
|
{
|
|
$oldpw=md5(md5($oldpw).$salt);
|
|
if('dg'.$oldpw=='dg'.$pw)
|
|
{
|
|
$istrue=1;
|
|
}
|
|
}
|
|
return $istrue;
|
|
}
|
|
|
|
//返回注册时间
|
|
function eReturnMemberRegtime($regtime,$format){
|
|
global $ecms_config;
|
|
return empty($ecms_config['member']['regtimetype'])?$regtime:date($format,$regtime);
|
|
}
|
|
|
|
//返回注册时间(int)
|
|
function eReturnMemberIntRegtime($regtime){
|
|
global $ecms_config;
|
|
return empty($ecms_config['member']['regtimetype'])?to_time($regtime):$regtime;
|
|
}
|
|
|
|
//返回当前注册时间
|
|
function eReturnAddMemberRegtime(){
|
|
global $ecms_config;
|
|
return empty($ecms_config['member']['regtimetype'])?date('Y-m-d H:i:s'):time();
|
|
}
|
|
|
|
//返回SALT
|
|
function eReturnMemberSalt(){
|
|
global $ecms_config;
|
|
return make_password($ecms_config['member']['saltnum']);
|
|
}
|
|
|
|
//返回UserKey
|
|
function eReturnMemberUserKey(){
|
|
global $ecms_config;
|
|
return make_password(12);
|
|
}
|
|
|
|
//启动易通行系统
|
|
function DoEpassport($ecms,$userid,$username,$password,$salt,$email,$groupid,$retime){
|
|
global $ecms_config;
|
|
return '';
|
|
if(!$ecms_config['epassport']['open'])
|
|
{
|
|
return '';
|
|
}
|
|
include_once ECMS_PATH.'e/epassport/epp_config.php';
|
|
include_once ECMS_PATH.'e/epassport/epp_function.php';
|
|
$r=DoEpassportVar($userid,$username,$password,$salt,$email,$groupid,$retime);
|
|
epassport_doaction($r,$ecms);
|
|
}
|
|
|
|
//易通行系统变量
|
|
function DoEpassportVar($userid,$username,$password,$salt,$email,$groupid,$retime){
|
|
$r['userid']=$userid;
|
|
$r['username']=$username;
|
|
$r['password']=$password;
|
|
$r['salt']=$salt;
|
|
$r['email']=$email;
|
|
$r['groupid']=$groupid;
|
|
$r['retime']=$retime;
|
|
return $r;
|
|
}
|
|
|
|
//--------------- 会员公共函数 ---------------
|
|
|
|
//返回设置短消息
|
|
function eReturnSetHavemsg($havemsg,$ecms=0){
|
|
$newhavemsg=1;
|
|
if($havemsg==3)//全部信息
|
|
{
|
|
$newhavemsg=3;
|
|
}
|
|
elseif($havemsg==2)//通知
|
|
{
|
|
$newhavemsg=$ecms==1?2:3;
|
|
}
|
|
elseif($havemsg==1)//消息
|
|
{
|
|
$newhavemsg=$ecms==1?3:1;
|
|
}
|
|
else //无状态
|
|
{
|
|
$newhavemsg=$ecms==1?2:1;
|
|
}
|
|
return $newhavemsg;
|
|
}
|
|
|
|
//取得表单id
|
|
function GetMemberFormId($groupid){
|
|
global $empire,$dbtbpre;
|
|
$groupid=(int)$groupid;
|
|
$r=$empire->fetch1("select formid from {$dbtbpre}enewsmembergroup where groupid='$groupid'");
|
|
return $r['formid'];
|
|
}
|
|
|
|
//取得邮件地址
|
|
function GetUserEmail($userid,$username){
|
|
global $empire,$dbtbpre;
|
|
$userid=(int)$userid;
|
|
$r=$empire->fetch1("select ".eReturnSelectMemberF('email')." from ".eReturnMemberTable()." where ".egetmf('userid')."='$userid' limit 1");
|
|
return $r['email'];
|
|
}
|
|
|
|
//返回修改资料
|
|
function ReturnUserInfo($userid){
|
|
global $empire,$dbtbpre;
|
|
$userid=(int)$userid;
|
|
$r=$empire->fetch1("select ".eReturnSelectMemberF('username,email,groupid,userfen,money,userdate,zgroupid,checked,registertime,ingid,agid,isern')." from ".eReturnMemberTable()." where ".egetmf('userid')."='$userid' limit 1");
|
|
return $r;
|
|
}
|
|
|
|
//返回是否审核
|
|
function ReturnGroupChecked($groupid){
|
|
global $level_r;
|
|
if($level_r[$groupid]['regchecked']==1)
|
|
{
|
|
$checked=0;
|
|
}
|
|
else
|
|
{
|
|
$checked=1;
|
|
}
|
|
return $checked;
|
|
}
|
|
|
|
//返回使用空间模板
|
|
function ReturnGroupSpaceStyleid($groupid){
|
|
global $level_r;
|
|
$spacestyleid=$level_r[$groupid]['spacestyleid']?$level_r[$groupid]['spacestyleid']:0;
|
|
return intval($spacestyleid);
|
|
}
|
|
|
|
//清空COOKIE
|
|
function EmptyEcmsCookie(){
|
|
$set1=esetcookie("mlusername","",0);
|
|
$set2=esetcookie("mluserid","",0);
|
|
$set3=esetcookie("mlgroupid","",0);
|
|
$set4=esetcookie("mlrnd","",0);
|
|
$set5=esetcookie("mlauth","",0);
|
|
}
|
|
|
|
//登录加密验证2
|
|
function qReturnLoginPassNoCK($userid,$username,$rnd,$ecms=0){
|
|
global $ecms_config;
|
|
if(!$userid||!$rnd)
|
|
{
|
|
return '';
|
|
}
|
|
$checkpass=md5(md5($ecms_config['cks']['ckrndthree'].'e.c-m-s-'.$userid.'-(em!pi.re!-)'.$rnd.'-d-i-g.o*d').'-#em.pire.cms!-'.$ecms_config['cks']['ckrndthree']);
|
|
return $checkpass;
|
|
}
|
|
|
|
//登录验证符
|
|
function qGetLoginAuthstr($userid,$username,$rnd,$groupid,$cookietime=0){
|
|
global $ecms_config;
|
|
$checkpass=md5(md5($rnd.'--d-i!'.$userid.'-(g*od-'.$username.$ecms_config['cks']['ckrndtwo'].'-'.$groupid).'-#empire.cms!--p)h-o!me-'.$ecms_config['cks']['ckrndtwo']);
|
|
esetcookie('mlauth',$checkpass,$cookietime);
|
|
}
|
|
|
|
//验证登录验证符
|
|
function qCheckLoginAuthstr(){
|
|
global $ecms_config;
|
|
$re['userid']='';
|
|
$re['username']='';
|
|
$re['groupid']='';
|
|
$re['rnd']='';
|
|
$re['islogin']=0;
|
|
$checkpass=getcvar('mlauth');
|
|
if(!$checkpass)
|
|
{
|
|
return $re;
|
|
}
|
|
$re['userid']=(int)getcvar('mluserid');
|
|
$re['username']=RepPostVar(getcvar('mlusername'));
|
|
$re['rnd']=RepPostVar(getcvar('mlrnd'));
|
|
$re['groupid']=(int)getcvar('mlgroupid');
|
|
if(!$re['userid']||!$re['username']||!$re['rnd'])
|
|
{
|
|
return $re;
|
|
}
|
|
$pass=md5(md5($re['rnd'].'--d-i!'.$re['userid'].'-(g*od-'.$re['username'].$ecms_config['cks']['ckrndtwo'].'-'.$re['groupid']).'-#empire.cms!--p)h-o!me-'.$ecms_config['cks']['ckrndtwo']);
|
|
if('dg'.$pass!='dg'.$checkpass)
|
|
{
|
|
return $re;
|
|
}
|
|
else
|
|
{
|
|
$re['islogin']=1;
|
|
return $re;
|
|
}
|
|
}
|
|
|
|
//是否登录
|
|
function islogin($uid=0,$uname='',$urnd=''){
|
|
global $empire,$dbtbpre,$public_r,$ecmsreurl,$ecms_config;
|
|
if($uid)
|
|
{$userid=(int)$uid;}
|
|
else
|
|
{$userid=(int)getcvar('mluserid');}
|
|
if($uname)
|
|
{$username=$uname;}
|
|
else
|
|
{$username=getcvar('mlusername');}
|
|
$username=RepPostVar($username);
|
|
if($urnd)
|
|
{$rnd=$urnd;}
|
|
else
|
|
{$rnd=getcvar('mlrnd');}
|
|
if($ecms_config['member']['loginurl'])
|
|
{$gotourl=$ecms_config['member']['loginurl'];}
|
|
else
|
|
{$gotourl=$public_r['newsurl']."e/member/login/";}
|
|
$petype=1;
|
|
$rnd=RepPostVar($rnd);
|
|
if(!$userid||!$username||!$rnd)
|
|
{
|
|
if(!getcvar('returnurl'))
|
|
{
|
|
esetcookie("returnurl",EcmsGetReturnUrl(),0);
|
|
}
|
|
if($ecmsreurl==1)
|
|
{
|
|
$gotourl="history.go(-1)";
|
|
$petype=9;
|
|
}
|
|
elseif($ecmsreurl==2)
|
|
{
|
|
$phpmyself=urlencode(eReturnSelfPage(1));
|
|
$gotourl=$public_r['newsurl']."e/member/login/login.php?prt=1&from=".$phpmyself;
|
|
$petype=9;
|
|
}
|
|
echo '请先登录';
|
|
exit();
|
|
}
|
|
//cookie
|
|
if(getcvar('mluserid'))
|
|
{
|
|
$qcklgr=qCheckLoginAuthstr();
|
|
if(!$qcklgr['islogin'])
|
|
{
|
|
EmptyEcmsCookie();
|
|
if(!getcvar('returnurl'))
|
|
{
|
|
esetcookie("returnurl",EcmsGetReturnUrl(),0);
|
|
}
|
|
if($ecmsreurl==1)
|
|
{
|
|
$gotourl="history.go(-1)";
|
|
$petype=9;
|
|
}
|
|
elseif($ecmsreurl==2)
|
|
{
|
|
$phpmyself=urlencode(eReturnSelfPage(1));
|
|
$gotourl=$public_r['newsurl']."e/member/login/login.php?prt=1&from=".$phpmyself;
|
|
$petype=9;
|
|
}
|
|
printerror("NotSingleLogin",$gotourl,$petype);
|
|
}
|
|
}
|
|
$cr=$empire->fetch1("select ".eReturnSelectMemberF('userid,username,email,groupid,userfen,money,userdate,zgroupid,havemsg,checked,registertime,ingid,agid,isern')." from ".eReturnMemberTable()." where ".egetmf('userid')."='$userid' and ".egetmf('username')."='$username' and ".egetmf('rnd')."='$rnd' limit 1");
|
|
if(!$cr['userid'])
|
|
{
|
|
EmptyEcmsCookie();
|
|
if(!getcvar('returnurl'))
|
|
{
|
|
esetcookie("returnurl",EcmsGetReturnUrl(),0);
|
|
}
|
|
if($ecmsreurl==1)
|
|
{
|
|
$gotourl="history.go(-1)";
|
|
$petype=9;
|
|
}
|
|
elseif($ecmsreurl==2)
|
|
{
|
|
$phpmyself=urlencode(eReturnSelfPage(1));
|
|
$gotourl=$public_r['newsurl']."e/member/login/login.php?prt=1&from=".$phpmyself;
|
|
$petype=9;
|
|
}
|
|
printerror("NotSingleLogin",$gotourl,$petype);
|
|
}
|
|
if($cr['checked']==0)
|
|
{
|
|
EmptyEcmsCookie();
|
|
if($ecmsreurl==1)
|
|
{
|
|
$gotourl="history.go(-1)";
|
|
$petype=9;
|
|
}
|
|
elseif($ecmsreurl==2)
|
|
{
|
|
$phpmyself=urlencode(eReturnSelfPage(1));
|
|
$gotourl=$public_r['newsurl']."e/member/login/login.php?prt=1&from=".$phpmyself;
|
|
$petype=9;
|
|
}
|
|
printerror("NotCheckedUser",'',$petype);
|
|
}
|
|
//默认会员组
|
|
if(empty($cr['groupid']))
|
|
{
|
|
$user_groupid=eReturnMemberDefGroupid();
|
|
$usql=$empire->query("update ".eReturnMemberTable()." set ".egetmf('groupid')."='$user_groupid' where ".egetmf('userid')."='".$cr[userid]."'");
|
|
$cr['groupid']=$user_groupid;
|
|
}
|
|
//是否过期
|
|
if($cr['userdate'])
|
|
{
|
|
if($cr['userdate']-time()<=0)
|
|
{
|
|
OutTimeZGroup($cr['userid'],$cr['zgroupid']);
|
|
$cr['userdate']=0;
|
|
if($cr['zgroupid'])
|
|
{
|
|
$cr['groupid']=$cr['zgroupid'];
|
|
$cr['zgroupid']=0;
|
|
}
|
|
}
|
|
}
|
|
$re[userid]=$cr['userid'];
|
|
$re[rnd]=$rnd;
|
|
$re[username]=$cr['username'];
|
|
$re[email]=$cr['email'];
|
|
$re[userfen]=$cr['userfen'];
|
|
$re[money]=$cr['money'];
|
|
$re[groupid]=$cr['groupid'];
|
|
$re[userdate]=$cr['userdate'];
|
|
$re[zgroupid]=$cr['zgroupid'];
|
|
$re[havemsg]=$cr['havemsg'];
|
|
$re[registertime]=$cr['registertime'];
|
|
$re[ingid]=$cr['ingid'];
|
|
$re[agid]=$cr['agid'];
|
|
$re[isern]=$cr['isern'];
|
|
$re['checked']=$cr['checked'];
|
|
return $re;
|
|
}
|
|
|
|
|
|
function isloginb($uid=0,$uname='',$urnd=''){
|
|
global $empire,$dbtbpre,$public_r,$ecmsreurl,$ecms_config;
|
|
if($uid)
|
|
{$userid=(int)$uid;}
|
|
else
|
|
{$userid=(int)getcvar('mluserid');}
|
|
if($uname)
|
|
{$username=$uname;}
|
|
else
|
|
{$username=getcvar('mlusername');}
|
|
$username=RepPostVar($username);
|
|
if($urnd)
|
|
{$rnd=$urnd;}
|
|
else
|
|
{$rnd=getcvar('mlrnd');}
|
|
if($ecms_config['member']['loginurl'])
|
|
{$gotourl=$ecms_config['member']['loginurl'];}
|
|
else
|
|
{$gotourl=$public_r['newsurl']."e/member/login/";}
|
|
$petype=1;
|
|
$rnd=RepPostVar($rnd);
|
|
if(!$userid||!$username||!$rnd)
|
|
{
|
|
if(!getcvar('returnurl'))
|
|
{
|
|
esetcookie("returnurl",EcmsGetReturnUrl(),0);
|
|
}
|
|
if($ecmsreurl==1)
|
|
{
|
|
$gotourl="history.go(-1)";
|
|
$petype=9;
|
|
}
|
|
elseif($ecmsreurl==2)
|
|
{
|
|
$phpmyself=urlencode(eReturnSelfPage(1));
|
|
$gotourl=$public_r['newsurl']."e/member/login/login.php?prt=1&from=".$phpmyself;
|
|
$petype=9;
|
|
}
|
|
Header("Location:/");
|
|
}
|
|
//cookie
|
|
if(getcvar('mluserid'))
|
|
{
|
|
$qcklgr=qCheckLoginAuthstr();
|
|
if(!$qcklgr['islogin'])
|
|
{
|
|
EmptyEcmsCookie();
|
|
if(!getcvar('returnurl'))
|
|
{
|
|
esetcookie("returnurl",EcmsGetReturnUrl(),0);
|
|
}
|
|
if($ecmsreurl==1)
|
|
{
|
|
$gotourl="history.go(-1)";
|
|
$petype=9;
|
|
}
|
|
elseif($ecmsreurl==2)
|
|
{
|
|
$phpmyself=urlencode(eReturnSelfPage(1));
|
|
$gotourl=$public_r['newsurl']."e/member/login/login.php?prt=1&from=".$phpmyself;
|
|
$petype=9;
|
|
}
|
|
printerror("NotSingleLogin",$gotourl,$petype);
|
|
}
|
|
}
|
|
$cr=$empire->fetch1("select ".eReturnSelectMemberF('userid,username,email,groupid,userfen,money,userdate,zgroupid,havemsg,checked,registertime,ingid,agid,isern')." from ".eReturnMemberTable()." where ".egetmf('userid')."='$userid' and ".egetmf('username')."='$username' and ".egetmf('rnd')."='$rnd' limit 1");
|
|
if(!$cr['userid'])
|
|
{
|
|
EmptyEcmsCookie();
|
|
if(!getcvar('returnurl'))
|
|
{
|
|
esetcookie("returnurl",EcmsGetReturnUrl(),0);
|
|
}
|
|
if($ecmsreurl==1)
|
|
{
|
|
$gotourl="history.go(-1)";
|
|
$petype=9;
|
|
}
|
|
elseif($ecmsreurl==2)
|
|
{
|
|
$phpmyself=urlencode(eReturnSelfPage(1));
|
|
$gotourl=$public_r['newsurl']."e/member/login/login.php?prt=1&from=".$phpmyself;
|
|
$petype=9;
|
|
}
|
|
printerror("NotSingleLogin",$gotourl,$petype);
|
|
}
|
|
if($cr['checked']==0)
|
|
{
|
|
EmptyEcmsCookie();
|
|
if($ecmsreurl==1)
|
|
{
|
|
$gotourl="history.go(-1)";
|
|
$petype=9;
|
|
}
|
|
elseif($ecmsreurl==2)
|
|
{
|
|
$phpmyself=urlencode(eReturnSelfPage(1));
|
|
$gotourl=$public_r['newsurl']."e/member/login/login.php?prt=1&from=".$phpmyself;
|
|
$petype=9;
|
|
}
|
|
printerror("NotCheckedUser",'',$petype);
|
|
}
|
|
//默认会员组
|
|
if(empty($cr['groupid']))
|
|
{
|
|
$user_groupid=eReturnMemberDefGroupid();
|
|
$usql=$empire->query("update ".eReturnMemberTable()." set ".egetmf('groupid')."='$user_groupid' where ".egetmf('userid')."='".$cr[userid]."'");
|
|
$cr['groupid']=$user_groupid;
|
|
}
|
|
//是否过期
|
|
if($cr['userdate'])
|
|
{
|
|
if($cr['userdate']-time()<=0)
|
|
{
|
|
OutTimeZGroup($cr['userid'],$cr['zgroupid']);
|
|
$cr['userdate']=0;
|
|
if($cr['zgroupid'])
|
|
{
|
|
$cr['groupid']=$cr['zgroupid'];
|
|
$cr['zgroupid']=0;
|
|
}
|
|
}
|
|
}
|
|
$re[userid]=$cr['userid'];
|
|
$re[rnd]=$rnd;
|
|
$re[username]=$cr['username'];
|
|
$re[email]=$cr['email'];
|
|
$re[userfen]=$cr['userfen'];
|
|
$re[money]=$cr['money'];
|
|
$re[groupid]=$cr['groupid'];
|
|
$re[userdate]=$cr['userdate'];
|
|
$re[zgroupid]=$cr['zgroupid'];
|
|
$re[havemsg]=$cr['havemsg'];
|
|
$re[registertime]=$cr['registertime'];
|
|
$re[ingid]=$cr['ingid'];
|
|
$re[agid]=$cr['agid'];
|
|
$re[isern]=$cr['isern'];
|
|
$re['checked']=$cr['checked'];
|
|
return $re;
|
|
}
|
|
|
|
function isloginc($uid=0,$uname='',$urnd=''){
|
|
global $empire,$dbtbpre,$public_r,$ecmsreurl,$ecms_config;
|
|
if($uid)
|
|
{$userid=(int)$uid;}
|
|
else
|
|
{$userid=(int)getcvar('mluserid');}
|
|
if($uname)
|
|
{$username=$uname;}
|
|
else
|
|
{$username=getcvar('mlusername');}
|
|
$username=RepPostVar($username);
|
|
if($urnd)
|
|
{$rnd=$urnd;}
|
|
else
|
|
{$rnd=getcvar('mlrnd');}
|
|
if($ecms_config['member']['loginurl'])
|
|
{$gotourl=$ecms_config['member']['loginurl'];}
|
|
else
|
|
{$gotourl=$public_r['newsurl']."e/member/login/";}
|
|
$petype=1;
|
|
$rnd=RepPostVar($rnd);
|
|
if(!$userid||!$username||!$rnd)
|
|
{
|
|
if(!getcvar('returnurl'))
|
|
{
|
|
esetcookie("returnurl",EcmsGetReturnUrl(),0);
|
|
}
|
|
if($ecmsreurl==1)
|
|
{
|
|
$gotourl="history.go(-1)";
|
|
$petype=9;
|
|
}
|
|
elseif($ecmsreurl==2)
|
|
{
|
|
$phpmyself=urlencode(eReturnSelfPage(1));
|
|
$gotourl=$public_r['newsurl']."e/member/login/login.php?prt=1&from=".$phpmyself;
|
|
$petype=9;
|
|
}
|
|
|
|
echo '1';
|
|
exit();
|
|
}
|
|
//cookie
|
|
if(getcvar('mluserid'))
|
|
{
|
|
$qcklgr=qCheckLoginAuthstr();
|
|
if(!$qcklgr['islogin'])
|
|
{
|
|
EmptyEcmsCookie();
|
|
if(!getcvar('returnurl'))
|
|
{
|
|
esetcookie("returnurl",EcmsGetReturnUrl(),0);
|
|
}
|
|
if($ecmsreurl==1)
|
|
{
|
|
$gotourl="history.go(-1)";
|
|
$petype=9;
|
|
}
|
|
elseif($ecmsreurl==2)
|
|
{
|
|
$phpmyself=urlencode(eReturnSelfPage(1));
|
|
$gotourl=$public_r['newsurl']."e/member/login/login.php?prt=1&from=".$phpmyself;
|
|
$petype=9;
|
|
}
|
|
printerror("NotSingleLogin",$gotourl,$petype);
|
|
}
|
|
}
|
|
$cr=$empire->fetch1("select ".eReturnSelectMemberF('userid,username,email,groupid,userfen,money,userdate,zgroupid,havemsg,checked,registertime,ingid,agid,isern')." from ".eReturnMemberTable()." where ".egetmf('userid')."='$userid' and ".egetmf('username')."='$username' and ".egetmf('rnd')."='$rnd' limit 1");
|
|
if(!$cr['userid'])
|
|
{
|
|
EmptyEcmsCookie();
|
|
if(!getcvar('returnurl'))
|
|
{
|
|
esetcookie("returnurl",EcmsGetReturnUrl(),0);
|
|
}
|
|
if($ecmsreurl==1)
|
|
{
|
|
$gotourl="history.go(-1)";
|
|
$petype=9;
|
|
}
|
|
elseif($ecmsreurl==2)
|
|
{
|
|
$phpmyself=urlencode(eReturnSelfPage(1));
|
|
$gotourl=$public_r['newsurl']."e/member/login/login.php?prt=1&from=".$phpmyself;
|
|
$petype=9;
|
|
}
|
|
printerror("NotSingleLogin",$gotourl,$petype);
|
|
}
|
|
if($cr['checked']==0)
|
|
{
|
|
EmptyEcmsCookie();
|
|
if($ecmsreurl==1)
|
|
{
|
|
$gotourl="history.go(-1)";
|
|
$petype=9;
|
|
}
|
|
elseif($ecmsreurl==2)
|
|
{
|
|
$phpmyself=urlencode(eReturnSelfPage(1));
|
|
$gotourl=$public_r['newsurl']."e/member/login/login.php?prt=1&from=".$phpmyself;
|
|
$petype=9;
|
|
}
|
|
printerror("NotCheckedUser",'',$petype);
|
|
}
|
|
//默认会员组
|
|
if(empty($cr['groupid']))
|
|
{
|
|
$user_groupid=eReturnMemberDefGroupid();
|
|
$usql=$empire->query("update ".eReturnMemberTable()." set ".egetmf('groupid')."='$user_groupid' where ".egetmf('userid')."='".$cr[userid]."'");
|
|
$cr['groupid']=$user_groupid;
|
|
}
|
|
//是否过期
|
|
if($cr['userdate'])
|
|
{
|
|
if($cr['userdate']-time()<=0)
|
|
{
|
|
OutTimeZGroup($cr['userid'],$cr['zgroupid']);
|
|
$cr['userdate']=0;
|
|
if($cr['zgroupid'])
|
|
{
|
|
$cr['groupid']=$cr['zgroupid'];
|
|
$cr['zgroupid']=0;
|
|
}
|
|
}
|
|
}
|
|
$re[userid]=$cr['userid'];
|
|
$re[rnd]=$rnd;
|
|
$re[username]=$cr['username'];
|
|
$re[email]=$cr['email'];
|
|
$re[userfen]=$cr['userfen'];
|
|
$re[money]=$cr['money'];
|
|
$re[groupid]=$cr['groupid'];
|
|
$re[userdate]=$cr['userdate'];
|
|
$re[zgroupid]=$cr['zgroupid'];
|
|
$re[havemsg]=$cr['havemsg'];
|
|
$re[registertime]=$cr['registertime'];
|
|
$re[ingid]=$cr['ingid'];
|
|
$re[agid]=$cr['agid'];
|
|
$re[isern]=$cr['isern'];
|
|
$re['checked']=$cr['checked'];
|
|
return $re;
|
|
}
|
|
//会员登录
|
|
function DoEcmsMemberLogin($r,$lifetime=0){
|
|
global $empire,$dbtbpre,$ecms_config;
|
|
$rnd=make_password(20);//取得随机密码
|
|
//默认会员组
|
|
if(empty($r['groupid']))
|
|
{
|
|
$r['groupid']=eReturnMemberDefGroupid();
|
|
}
|
|
$r['groupid']=(int)$r['groupid'];
|
|
$empire->query("update ".eReturnMemberTable()." set ".egetmf('rnd')."='$rnd',".egetmf('groupid')."='$r[groupid]' where ".egetmf('userid')."='$r[userid]'");
|
|
//设置cookie
|
|
$lifetime=(int)$lifetime;
|
|
$logincookie=0;
|
|
if($lifetime)
|
|
{
|
|
$logincookie=time()+$lifetime;
|
|
}
|
|
esetcookie("mlusername",$r['username'],$logincookie);
|
|
esetcookie("mluserid",$r['userid'],$logincookie);
|
|
esetcookie("mlgroupid",$r['groupid'],$logincookie);
|
|
esetcookie("mlrnd",$rnd,$logincookie);
|
|
//验证符
|
|
qGetLoginAuthstr($r['userid'],$r['username'],$rnd,$r['groupid'],$logincookie);
|
|
//登录附加cookie
|
|
AddLoginCookie($r);
|
|
}
|
|
|
|
//验证会员帐号和密码
|
|
function DoEcmsMemberCheckUserPass($add){
|
|
global $empire,$dbtbpre,$ecms_config;
|
|
$dopr=1;
|
|
if($_POST['prtype'])
|
|
{
|
|
$dopr=9;
|
|
}
|
|
$username=trim($add['username']);
|
|
$password=trim($add['password']);
|
|
if(!$username||!$password)
|
|
{
|
|
printerror("EmptyLogin","history.go(-1)",$dopr);
|
|
}
|
|
$username=RepPostVar($username);
|
|
$password=RepPostVar($password);
|
|
$num=0;
|
|
$r=$empire->fetch1("select ".eReturnSelectMemberF('*')." from ".eReturnMemberTable()." where ".egetmf('username')."='$username' limit 1");
|
|
if(!$r['userid'])
|
|
{
|
|
printerror("FailPassword","history.go(-1)",$dopr);
|
|
}
|
|
if(!eDoCkMemberPw($password,$r['password'],$r['salt']))
|
|
{
|
|
printerror("FailPassword","history.go(-1)",$dopr);
|
|
}
|
|
if($r['checked']==0)
|
|
{
|
|
printerror('NotCheckedUser','',$dopr);
|
|
}
|
|
return $r;
|
|
}
|
|
|
|
//返回管理组级别
|
|
function eMember_ReturnAgidLevel($userid,$agid){
|
|
global $empire,$dbtbpre,$public_r,$ecms_config,$aglevel_r;
|
|
$userid=(int)$userid;
|
|
$agid=(int)$agid;
|
|
$glevel=0;
|
|
$ckstr=','.$userid.',';
|
|
if(!$agid)
|
|
{
|
|
return 0;
|
|
}
|
|
if(!$aglevel_r[$agid]['agid'])
|
|
{
|
|
return 0;
|
|
}
|
|
if(strstr($public_r['qmotheruids'],$ckstr))
|
|
{
|
|
$glevel=1;
|
|
}
|
|
elseif(strstr($public_r['qmforumuids'],$ckstr))
|
|
{
|
|
$glevel=5;
|
|
}
|
|
elseif(strstr($public_r['qmadminuids'],$ckstr))
|
|
{
|
|
$glevel=9;
|
|
}
|
|
else
|
|
{
|
|
$glevel=0;
|
|
}
|
|
if($aglevel_r[$agid]['isadmin']!=$glevel)
|
|
{
|
|
$glevel=0;
|
|
}
|
|
return $glevel;
|
|
}
|
|
|
|
//返回验证访问组权限
|
|
function eMember_ReturnCheckViewGroup($ckuser,$vgid){
|
|
global $empire,$dbtbpre,$public_r,$ecms_config,$class_r;
|
|
$esuccess='empire.cms';
|
|
$vgid=(int)$vgid;
|
|
$ckuser['userid']=(int)$ckuser['userid'];
|
|
if(!$vgid)
|
|
{
|
|
return 'NotVgid';
|
|
}
|
|
$vgr=$empire->fetch1("select * from {$dbtbpre}enewsvg where vgid='$vgid'");
|
|
if(!$vgr['vgid'])
|
|
{
|
|
return 'NotVgid';
|
|
}
|
|
$thistime=time();
|
|
//会员组验证
|
|
if($vgr['gids'])
|
|
{
|
|
$ckuser['groupid']=(int)$ckuser['groupid'];
|
|
if(strstr($vgr['gids'],','.$ckuser['groupid'].','))
|
|
{
|
|
return $esuccess;
|
|
}
|
|
}
|
|
//内部组验证
|
|
if($vgr['ingids'])
|
|
{
|
|
$ckuser['ingid']=(int)$ckuser['ingid'];
|
|
if(strstr($vgr['ingids'],','.$ckuser['ingid'].','))
|
|
{
|
|
return $esuccess;
|
|
}
|
|
}
|
|
//会员管理组验证
|
|
if($vgr['agids'])
|
|
{
|
|
$ckuser['agid']=(int)$ckuser['agid'];
|
|
if(strstr($vgr['agids'],','.$ckuser['agid'].','))
|
|
{
|
|
return $esuccess;
|
|
}
|
|
}
|
|
//会员白名单
|
|
if($vgr['mlist'])
|
|
{
|
|
$vgmember=$empire->fetch1("select userid,outtime from {$dbtbpre}enewsvglist where vgid='$vgid' and userid='".$ckuser['userid']."' limit 1");
|
|
if(!$vgmember['userid'])
|
|
{
|
|
return 'NotUserid';
|
|
}
|
|
if(empty($vgmember['outtime']))
|
|
{
|
|
return $esuccess;
|
|
}
|
|
if($thistime<$vgmember['outtime'])
|
|
{
|
|
return $esuccess;
|
|
}
|
|
}
|
|
return 'NotLevel';
|
|
}
|
|
|
|
|
|
//--------------- 会员实名函数 ---------------
|
|
|
|
//实名验证
|
|
function eCheckHaveTruename($mod,$userid,$username,$isern,$checked,$ecms=0){
|
|
global $empire,$dbtbpre,$public_r,$ecms_config,$ecms_topagesetr,$enews;
|
|
if(empty($public_r['openern']))
|
|
{
|
|
return '';
|
|
}
|
|
if(!strstr($public_r['openern'],','.$mod.','))
|
|
{
|
|
return '';
|
|
}
|
|
if($userid)
|
|
{
|
|
if($checked==0)
|
|
{
|
|
printerror("NotCheckedUser",'',1);
|
|
}
|
|
}
|
|
if(!$isern)
|
|
{
|
|
printerror('NotHaveTrueName',$public_r['ernurl'],1);
|
|
}
|
|
}
|
|
|
|
//实名验证2
|
|
function eCheckHaveTruenameCK($mod,$ecms=0){
|
|
global $empire,$dbtbpre,$public_r,$ecms_config,$ecms_topagesetr,$enews;
|
|
if(empty($public_r['openern']))
|
|
{
|
|
return '';
|
|
}
|
|
if(!strstr($public_r['openern'],','.$mod.','))
|
|
{
|
|
return '';
|
|
}
|
|
$isern=0;
|
|
$cklgr=qCheckLoginAuthstr();
|
|
if($cklgr['islogin'])
|
|
{
|
|
$userid=(int)$cklgr['userid'];
|
|
$ernr=eReturnHaveTruename($userid,'',1);
|
|
$isern=$ernr['isern'];
|
|
if($ernr['checked']==0)
|
|
{
|
|
printerror("NotCheckedUser",'',1);
|
|
}
|
|
}
|
|
if(!$isern)
|
|
{
|
|
printerror('NotHaveTrueName',$public_r['ernurl'],1);
|
|
}
|
|
}
|
|
|
|
//返回是否实名
|
|
function eReturnHaveTruename($userid,$username='',$ecms=0){
|
|
global $empire,$dbtbpre;
|
|
$userid=(int)$userid;
|
|
$r=$empire->fetch1("select ".eReturnSelectMemberF('userid,checked,isern')." from ".eReturnMemberTable()." where ".egetmf('userid')."='$userid' limit 1");
|
|
if($ecms)
|
|
{
|
|
return $r;
|
|
}
|
|
else
|
|
{
|
|
return $r['isern'];
|
|
}
|
|
}
|
|
|
|
//更新实名状态
|
|
function eUpdateTruenameStatus($userid,$username,$checked,$isern,$ecms=0){
|
|
global $empire,$dbtbpre;
|
|
$userid=(int)$userid;
|
|
$checked=(int)$checked;
|
|
$isern=(int)$isern;
|
|
$username=RepPostVar($username);
|
|
//更新审核和实名状态
|
|
$upstr='';
|
|
if($ecms==2)
|
|
{
|
|
$upstr="".egetmf('checked')."='$checked',".egetmf('isern')."='$isern'";
|
|
}
|
|
elseif($ecms==1)//审核
|
|
{
|
|
$upstr="".egetmf('checked')."='$checked'";
|
|
}
|
|
else//实名
|
|
{
|
|
$upstr="".egetmf('isern')."='$isern'";
|
|
}
|
|
if($upstr)
|
|
{
|
|
$sql=$empire->query("update ".eReturnMemberTable()." set ".$upstr." where ".egetmf('userid')."='$userid'");
|
|
return $sql;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
//--------------- 其他函数 ---------------
|
|
|
|
//增加点数
|
|
function AddInfoFen($cardfen,$userid,$checkfen=1){
|
|
global $empire,$dbtbpre;
|
|
$cardfen=(int)$cardfen;
|
|
if(!$cardfen)
|
|
{
|
|
return '';
|
|
}
|
|
//checkfen
|
|
if($checkfen==1)
|
|
{
|
|
if($cardfen<0)
|
|
{
|
|
$ur=$empire->fetch1("select ".eReturnSelectMemberF('userid,userdate,userfen')." from ".eReturnMemberTable()." where ".egetmf('userid')."='$userid' limit 1");
|
|
if(!$ur['userid'])
|
|
{
|
|
return '';
|
|
}
|
|
if($ur['userdate']-time()>0)
|
|
{
|
|
return '';
|
|
}
|
|
if($cardfen+$ur['userfen']<0)
|
|
{
|
|
$cardfen=$ur['userfen']*-1;
|
|
}
|
|
}
|
|
}
|
|
$sql=$empire->query("update ".eReturnMemberTable()." set ".egetmf('userfen')."=".egetmf('userfen')."+".$cardfen." where ".egetmf('userid')."='$userid'");
|
|
}
|
|
|
|
//转向会员组
|
|
function OutTimeZGroup($userid,$zgroupid){
|
|
global $empire,$dbtbpre;
|
|
if($zgroupid)
|
|
{
|
|
$sql=$empire->query("update ".eReturnMemberTable()." set ".egetmf('groupid')."='".$zgroupid."',".egetmf('userdate')."=0 where ".egetmf('userid')."='$userid'");
|
|
}
|
|
else
|
|
{
|
|
$sql=$empire->query("update ".eReturnMemberTable()." set ".egetmf('userdate')."=0 where ".egetmf('userid')."='$userid'");
|
|
}
|
|
}
|
|
|
|
//充值有效期判断
|
|
function eCardCheckUserdate($userdate,$usergroupid,$buygroupid){
|
|
global $public_r;
|
|
if($usergroupid==$buygroupid)
|
|
{
|
|
return $userdate;
|
|
}
|
|
//已有有效期
|
|
if($userdate&&$userdate>=time())
|
|
{
|
|
if($public_r['mhavedatedo']==1)//覆盖
|
|
{
|
|
$userdate=0;
|
|
}
|
|
elseif($public_r['mhavedatedo']==2)//叠加
|
|
{
|
|
}
|
|
else//不让充值
|
|
{
|
|
printerror('CardHaveUserdate','history.go(-1)',1);
|
|
}
|
|
}
|
|
return $userdate;
|
|
}
|
|
|
|
//充值
|
|
function eAddFenToUser($fen,$date,$groupid,$zgroupid,$user){
|
|
global $empire,$dbtbpre,$public_r;
|
|
if(!($fen||$date))
|
|
{
|
|
return '';
|
|
}
|
|
$update='';
|
|
//积分
|
|
if($fen)
|
|
{
|
|
$update.=egetmf('userfen')."=".egetmf('userfen')."+$fen";
|
|
}
|
|
//有效期
|
|
if($date)
|
|
{
|
|
$user[userdate]=eCardCheckUserdate($user[userdate],$user[groupid],$groupid);//有效期验证
|
|
$dh='';
|
|
if($update)
|
|
{
|
|
$dh=',';
|
|
}
|
|
if($user[userdate]<time())
|
|
{
|
|
$userdate=time()+$date*24*3600;
|
|
}
|
|
else
|
|
{
|
|
$userdate=$user[userdate]+$date*24*3600;
|
|
}
|
|
$update.=$dh.egetmf('userdate')."='$userdate'";
|
|
//转向会员组
|
|
if($groupid)
|
|
{
|
|
$update.=",".egetmf('groupid')."='$groupid'";
|
|
}
|
|
if($zgroupid)
|
|
{
|
|
$update.=",".egetmf('zgroupid')."='$zgroupid'";
|
|
}
|
|
}
|
|
$sql=$empire->query("update ".eReturnMemberTable()." set ".$update." where ".egetmf('userid')."='".$user[userid]."'");
|
|
if(!$sql)
|
|
{
|
|
printerror('DbError',$public_r[newsurl],1);
|
|
}
|
|
}
|
|
|
|
//检查下载数
|
|
function DoCheckMDownNum($userid,$groupid,$ecms=0){
|
|
global $empire,$dbtbpre,$level_r;
|
|
$ur=$empire->fetch1("select userid,todaydate,todaydown from {$dbtbpre}enewsmemberpub where userid='$userid' limit 1");
|
|
$thetoday=date("Y-m-d");
|
|
if($ur['userid'])
|
|
{
|
|
if($thetoday!=$ur['todaydate'])
|
|
{
|
|
$query="update {$dbtbpre}enewsmemberpub set todaydate='$thetoday',todaydown=1 where userid='$userid'";
|
|
}
|
|
else
|
|
{
|
|
if($ur['todaydown']>=$level_r[$groupid]['daydown'])
|
|
{
|
|
if($ecms==1)
|
|
{
|
|
exit();
|
|
}
|
|
elseif($ecms==2)
|
|
{
|
|
return 'error';
|
|
}
|
|
else
|
|
{
|
|
printerror("CrossDaydown","history.go(-1)",1);
|
|
}
|
|
}
|
|
$query="update {$dbtbpre}enewsmemberpub set todaydown=todaydown+1 where userid='$userid'";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$query="replace into {$dbtbpre}enewsmemberpub(userid,todaydate,todaydown) values('$userid','$thetoday',1);";
|
|
}
|
|
return $query;
|
|
}
|
|
|
|
//更新激活认证码
|
|
function DoUpdateMemberAuthstr($userid,$authstr){
|
|
global $empire,$dbtbpre;
|
|
$num=$empire->gettotal("select count(*) as total from {$dbtbpre}enewsmemberpub where userid='$userid' limit 1");
|
|
if($num)
|
|
{
|
|
$sql=$empire->query("update {$dbtbpre}enewsmemberpub set authstr='$authstr' where userid='$userid'");
|
|
}
|
|
else
|
|
{
|
|
$sql=$empire->query("replace into {$dbtbpre}enewsmemberpub(userid,authstr) values('$userid','$authstr');");
|
|
}
|
|
return $sql;
|
|
}
|
|
?>
|