| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- <?php
- //--------------- 注册函数 ---------------
- //验证会员组是否可注册
- function CheckMemberGroupCanReg($groupid){
- global $empire,$dbtbpre;
- $groupid=(int)$groupid;
- $r=$empire->fetch1("select groupid from {$dbtbpre}enewsmembergroup where groupid='$groupid' and canreg=1");
- if(empty($r['groupid']))
- {
- printerror('ErrorUrl','',1);
- }
- }
- //验证注册时间
- function eCheckIpRegTime($ip,$time){
- global $empire,$dbtbpre;
- if(empty($time))
- {
- return '';
- }
- $uaddr=$empire->fetch1("select userid from {$dbtbpre}enewsmemberadd where regip='$ip' order by userid desc limit 1");
- if(empty($uaddr['userid']))
- {
- return '';
- }
- $ur=$empire->fetch1("select ".eReturnSelectMemberF('userid,registertime')." from ".eReturnMemberTable()." where ".egetmf('userid')."='$uaddr[userid]' limit 1");
- if(empty($ur['userid']))
- {
- return '';
- }
- $registertime=eReturnMemberIntRegtime($ur['registertime']);
- if(time()-$registertime<=$time*3600)
- {
- printerror('RegisterReIpError','',1);
- }
- }
- //用户注册
- function register($add){
- global $empire,$dbtbpre,$public_r,$ecms_config;
- //关闭注册
- if($public_r['register_ok'])
- {
- printerror('CloseRegister','',1);
- }
- //验证时间段允许操作
- eCheckTimeCloseDo('reg');
- //验证IP
- eCheckAccessDoIp('register');
- if(!empty($ecms_config['member']['registerurl']))
- {
- Header("Location:".$ecms_config['member']['registerurl']);
- exit();
- }
- //已经登陆不能注册
- if(getcvar('mluserid'))
- {
- printerror('LoginToRegister','',1);
- }
- CheckCanPostUrl();//验证来源
- $username=trim($add['username']);
- $password=trim($add['password']);
- $username=RepPostVar($username);
- $password=RepPostVar($password);
- $email=addslashes(RepPostStr($add['email']));
- $email=RepPostVar($email);
- if(!$username||!$password||!$email)
- {
- printerror("EmptyMember","history.go(-1)",1);
- }
- $tobind=(int)$add['tobind'];
- //验证码
- $keyvname='checkregkey';
- if($public_r['regkey_ok'])
- {
- ecmsCheckShowKey($keyvname,$add['key'],1);
- }
- $user_groupid=eReturnMemberDefGroupid();
- $groupid=(int)$add['groupid'];
- $groupid=empty($groupid)?$user_groupid:$groupid;
- CheckMemberGroupCanReg($groupid);
- //IP
- $regip=egetip();
- $regipport=egetipport();
- //用户字数
- $pr=$empire->fetch1("select min_userlen,max_userlen,min_passlen,max_passlen,regretime,regclosewords,regemailonly from {$dbtbpre}enewspublic limit 1");
- $userlen=strlen($username);
- if($userlen<$pr[min_userlen]||$userlen>$pr[max_userlen])
- {
- printerror('FaiUserlen','',1);
- }
- //密码字数
- $passlen=strlen($password);
- if($passlen<$pr[min_passlen]||$passlen>$pr[max_passlen])
- {
- printerror('FailPasslen','',1);
- }
- if($add['repassword']!==$password)
- {
- printerror('NotRepassword','',1);
- }
- if(!chemail($email))
- {
- printerror('EmailFail','',1);
- }
- if(strstr($username,'|')||strstr($username,'*'))
- {
- printerror('NotSpeWord','',1);
- }
- //同一IP注册
- eCheckIpRegTime($regip,$pr['regretime']);
- //保留用户
- toCheckCloseWord($username,$pr['regclosewords'],'RegHaveCloseword');
- $username=RepPostStr($username);
- //重复用户
- $num=$empire->gettotal("select count(*) as total from ".eReturnMemberTable()." where ".egetmf('username')."='$username' limit 1");
- if($num)
- {
- printerror('ReUsername','',1);
- }
- //重复邮箱
- if($pr['regemailonly'])
- {
- $num=$empire->gettotal("select count(*) as total from ".eReturnMemberTable()." where ".egetmf('email')."='$email' limit 1");
- if($num)
- {
- printerror('ReEmailFail','',1);
- }
- }
- //注册时间
- $lasttime=time();
- $registertime=eReturnAddMemberRegtime();
- $rnd=make_password(20);//产生随机密码
- $userkey=eReturnMemberUserKey();
- //密码
- $truepassword=$password;
- $salt=eReturnMemberSalt();
- $password=eDoMemberPw($password,$salt);
- //审核
- $checked=ReturnGroupChecked($groupid);
- if($checked&&$public_r['regacttype'])
- {
- $checked=0;
- }
- $checked=(int)$checked;
- //验证附加表必填项
- $mr['add_filepass']=ReturnTranFilepass();
- $fid=GetMemberFormId($groupid);
- $member_r=ReturnDoMemberF($fid,$add,$mr,0,$username);
- $sql=$empire->query("insert into ".eReturnMemberTable()."(".eReturnInsertMemberF('username,password,rnd,email,registertime,groupid,userfen,userdate,money,zgroupid,havemsg,checked,salt,userkey').") values('$username','$password','$rnd','$email','$registertime','$groupid','$public_r[reggetfen]','0','0','0','0','$checked','$salt','$userkey');");
- //取得userid
- $userid=$empire->lastid();
- //附加表
- $addr=$empire->fetch1("select * from {$dbtbpre}enewsmemberadd where userid='$userid'");
- if(!$addr[userid])
- {
- $spacestyleid=ReturnGroupSpaceStyleid($groupid);
- $sql1=$empire->query("insert into {$dbtbpre}enewsmemberadd(userid,spacestyleid,regip,lasttime,lastip,loginnum,regipport,lastipport".$member_r[0].") values('$userid','$spacestyleid','$regip','$lasttime','$regip','1','$regipport','$regipport'".$member_r[1].");");
- }
- //更新附件
- UpdateTheFileOther(6,$userid,$mr['add_filepass'],'member');
- ecmsEmptyShowKey($keyvname);//清空验证码
- //绑定帐号
- if($tobind)
- {
- MemberConnect_BindUser($userid);
- }
- if($sql)
- {
- //邮箱激活
- if($checked==0&&$public_r['regacttype']==1)
- {
- include('class/member_actfun.php');
- SendActUserEmail($userid,$username,$email);
- }
- //审核
- if($checked==0)
- {
- $location=DoingReturnUrl("../../",$_POST['ecmsfrom']);
- printerror("RegisterSuccessCheck",$location,1);
- }
- $logincookie=0;
- if($ecms_config['member']['regcookietime'])
- {
- $logincookie=time()+$ecms_config['member']['regcookietime'];
- }
- $r=$empire->fetch1("select ".eReturnSelectMemberF('*')." from ".eReturnMemberTable()." where ".egetmf('userid')."='$userid' limit 1");
- $set1=esetcookie("mlusername",$username,$logincookie);
- $set2=esetcookie("mluserid",$userid,$logincookie);
- $set3=esetcookie("mlgroupid",$groupid,$logincookie);
- $set4=esetcookie("mlrnd",$rnd,$logincookie);
- //验证符
- qGetLoginAuthstr($userid,$username,$rnd,$groupid,$logincookie);
- //登录附加cookie
- AddLoginCookie($r);
- $location="../member/cp/";
- $returnurl=getcvar('returnurl');
- if($returnurl&&!strstr($returnurl,"e/member/iframe")&&!strstr($returnurl,"e/member/register")&&!strstr($returnurl,"enews=exit"))
- {
- $location=$returnurl;
- }
- $set5=esetcookie("returnurl","");
- //易通行系统
- DoEpassport('reg',$userid,$username,$truepassword,$salt,$email,$groupid,$registertime);
- $location=DoingReturnUrl($location,$_POST['ecmsfrom']);
- printerror("RegisterSuccess",$location,1);
- }
- else
- {printerror("DbError","history.go(-1)",1);}
- }
- ?>
|