190 lines
4.2 KiB
PHP
190 lines
4.2 KiB
PHP
<?php
|
|
defined('IN_TS') or die('Access Denied.');
|
|
|
|
use EasyWeChat\Factory;
|
|
|
|
if(tsIntval($TS_USER['userid']) > 0) {
|
|
header('Location: '.SITE_URL);exit;
|
|
}
|
|
|
|
if($TS_SITE['isinvite']==2){
|
|
tsNotice('暂不开放用户注册!');
|
|
}
|
|
|
|
#微信公众号授权
|
|
if(isWeixin()==true && $TS_SITE['is_weixin']==1){
|
|
$config = [
|
|
'app_id' => $TS_SITE['weixin_appid'],
|
|
'oauth' => [
|
|
'scopes' => ['snsapi_userinfo'],
|
|
'callback' => SITE_URL.'index.php?app=user&ac=wxlogin',
|
|
],
|
|
];
|
|
$app = Factory::officialAccount($config);
|
|
$oauth = $app->oauth;
|
|
$oauth->redirect()->send();
|
|
exit();
|
|
}
|
|
|
|
//用户注册
|
|
switch($ts){
|
|
case "":
|
|
|
|
#如果网站只采用手机号注册,就跳转到手机号注册
|
|
if($TS_SITE['regtype']==1){
|
|
header('Location: '.tsUrl('user','phone'));exit;
|
|
}
|
|
|
|
//邀请用户ID
|
|
$fuserid = tsIntval($_GET['fuserid']);
|
|
if($fuserid){
|
|
$strFuser = $new['user']->getSimpleUser($fuserid);
|
|
}
|
|
|
|
$title = '注册';
|
|
|
|
include template("register");
|
|
break;
|
|
|
|
case "do":
|
|
|
|
//用于JS提交验证
|
|
$js = tsIntval($_GET['js']);
|
|
|
|
$email = tsTrim($_POST['email']);
|
|
$pwd = tsTrim($_POST['pwd']);
|
|
$repwd = tsTrim($_POST['repwd']);
|
|
$username = t($_POST['username']);
|
|
|
|
$fuserid = tsIntval($_POST['fuserid']);
|
|
|
|
$authcode = strtolower(tsTrim($_POST['authcode']));
|
|
|
|
|
|
|
|
#人机验证
|
|
$vaptcha_token = tsTrim($_POST['vaptcha_token']);
|
|
$vaptcha_server = tsTrim($_POST['vaptcha_server']);
|
|
if ($TS_SITE['is_vaptcha']) {
|
|
$strVt = vaptcha($vaptcha_token,0,$vaptcha_server);
|
|
if($strVt['success']==0) {
|
|
getJson('人机验证未通过!',$js);
|
|
}
|
|
}
|
|
|
|
//检测垃圾Email后缀
|
|
$arrEmail = explode('@',$email);
|
|
|
|
$emails = array(
|
|
'chacuo.net',
|
|
'mail.ru',
|
|
'yandex.ru',
|
|
'yandex.com',
|
|
'027168.net',
|
|
'027168.com',
|
|
);
|
|
|
|
if(in_array($arrEmail[1],$emails)){
|
|
getJson('禁止该邮箱注册!',$js);
|
|
}
|
|
|
|
|
|
/*禁止以下IP用户登陆或注册*/
|
|
/*
|
|
$arrIp = aac('system')->antiIp();
|
|
if(in_array(getIp(),$arrIp)){
|
|
getJson('你的IP已被锁定,暂无法登录!',$js);
|
|
}
|
|
*/
|
|
|
|
//是否开启邀请注册
|
|
if($TS_SITE['isinvite']=='1'){
|
|
|
|
$invitecode = tsTrim($_POST['invitecode']);
|
|
|
|
if($invitecode == '') getJson('邀请码不能为空!',$js);
|
|
|
|
$codeNum = $new['user']->findCount('user_invites',array(
|
|
'invitecode'=>$invitecode,
|
|
'isused'=>0,
|
|
));
|
|
|
|
if($codeNum == 0) getJson('邀请码已经被使用/或者不存在,请更换其他邀请码!',$js);
|
|
|
|
}
|
|
|
|
if($email=='' || $pwd=='' || $repwd=='' || $username==''){
|
|
getJson('所有必选项都不能为空!',$js);
|
|
}
|
|
|
|
if(valid_email($email) == false){
|
|
getJson('Email邮箱输入有误',$js);
|
|
}
|
|
|
|
#Email过滤
|
|
$is_anti_email = $new['user']->find('anti_email',array(
|
|
'email'=>$email,
|
|
));
|
|
if($is_anti_email>0){
|
|
getJson('非法操作!',$js);
|
|
}
|
|
|
|
|
|
#验证Email验证码
|
|
if($TS_SITE['isverify']){
|
|
$emailcode = tsTrim($_POST['emailcode']);
|
|
if(aac('pubs')->verifyEmailCode($email,$emailcode)==false){
|
|
getJson('Email验证码输入有误',$js);
|
|
}
|
|
}
|
|
|
|
#判断Email是否存在
|
|
$isEmail = $new['user']->findCount('user',array(
|
|
'email'=>$email,
|
|
));
|
|
|
|
if($isEmail > 0){
|
|
getJson('Email已经注册',$js);
|
|
}
|
|
|
|
if($pwd != $repwd){
|
|
getJson('两次输入密码不正确!',$js);
|
|
}
|
|
|
|
if(count_string_len($username) < 4 || count_string_len($username) > 20){
|
|
getJson('姓名长度必须在4和20之间',$js);
|
|
}
|
|
|
|
#用户名敏感词
|
|
$username = antiWord ($username,1);
|
|
$username = str_replace('.','',$username);
|
|
|
|
#判断用户名是否存在
|
|
$isUserName = $new['user']->findCount('user_info',array(
|
|
'username'=>$username,
|
|
));
|
|
|
|
if($isUserName > 0){
|
|
getJson('用户名已经存在,请换个用户名!',$js);
|
|
}
|
|
|
|
if($TS_SITE['isauthcode']){
|
|
if ($authcode != $_SESSION['verify']) {
|
|
getJson('验证码输入有误,请重新输入!', $js);
|
|
}
|
|
}
|
|
|
|
|
|
$new['user']->register($email,$username,$pwd,$fuserid,$invitecode);
|
|
|
|
|
|
//对积分进行处理
|
|
aac('user')->doScore($TS_URL['app'], $TS_URL['ac'],$TS_URL['mg'],$TS_URL['api'], $TS_URL['ts']);
|
|
|
|
//跳转
|
|
getJson('登录成功!',$js,2,SITE_URL);
|
|
|
|
|
|
break;
|
|
|
|
} |