2015-07-28 15:15:57 +08:00
|
|
|
<?php
|
|
|
|
|
namespace User\Controller;
|
|
|
|
|
use Think\Controller;
|
|
|
|
|
|
|
|
|
|
/**
|
2017-02-03 12:32:57 +08:00
|
|
|
* @Author: Zhou Yuyang <1009465756@qq.com> 10:28 2017/02/02
|
2016-12-03 21:42:04 +08:00
|
|
|
* @Copyright 2015-2020 SISMO
|
|
|
|
|
* @Project homepage https://github.com/CNSISMO
|
2017-02-03 12:32:57 +08:00
|
|
|
* @Version 2.0
|
2015-07-28 15:15:57 +08:00
|
|
|
*/
|
|
|
|
|
|
2017-02-03 12:32:57 +08:00
|
|
|
|
2015-07-28 15:15:57 +08:00
|
|
|
class RegController extends Controller{
|
2017-02-03 12:32:57 +08:00
|
|
|
|
2015-07-28 15:15:57 +08:00
|
|
|
public function index()
|
|
|
|
|
{
|
2016-01-25 10:53:12 +08:00
|
|
|
$tmodel= M('setting');
|
|
|
|
|
$title = $tmodel->where('id=1')->select();
|
|
|
|
|
$this->assign('title', $title);
|
2017-02-03 12:32:57 +08:00
|
|
|
$this->display();
|
2016-12-02 12:24:27 +08:00
|
|
|
}
|
|
|
|
|
|
2015-07-28 15:15:57 +08:00
|
|
|
/**
|
2016-12-03 21:42:04 +08:00
|
|
|
* 用户注册
|
2015-07-28 15:15:57 +08:00
|
|
|
*/
|
|
|
|
|
public function add()
|
|
|
|
|
{
|
|
|
|
|
if (!IS_POST) {
|
|
|
|
|
$this->display();
|
|
|
|
|
}
|
|
|
|
|
if (IS_POST) {
|
2017-02-03 12:32:57 +08:00
|
|
|
$data['salt'] = "";
|
|
|
|
|
$data['pid'] = "";
|
|
|
|
|
$chars = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
|
|
|
$pchars = '0123456789';
|
2016-12-02 12:24:27 +08:00
|
|
|
for($num=0;$num<8;$num++)
|
|
|
|
|
{
|
|
|
|
|
$RandNum = rand(0,strlen($chars)-1);
|
|
|
|
|
$data['salt'] .= $chars[$RandNum];
|
2017-02-03 12:32:57 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for($num=0;$num<32;$num++)
|
|
|
|
|
{
|
|
|
|
|
$RandNum = rand(0,strlen($pchars)-1);
|
|
|
|
|
$data['pid'] .= $pchars[$RandNum];
|
|
|
|
|
}
|
2016-12-02 12:24:27 +08:00
|
|
|
|
|
|
|
|
$data['username'] = I('username');
|
|
|
|
|
$data['email']= I('email');
|
|
|
|
|
$data['password'] = I('password');
|
|
|
|
|
$repassword= I('repassword');
|
2017-02-03 12:32:57 +08:00
|
|
|
if(strlen($data['password']) < 8){ $this->error("为了保证帐户安全,请输入大于八位数的密码!");}
|
2016-12-02 12:24:27 +08:00
|
|
|
if($data['password'] != $repassword){ $this->error("两次密码不一致!");}
|
|
|
|
|
|
|
|
|
|
$code = I('verify','','strtolower');
|
|
|
|
|
|
|
|
|
|
if(!($this->check_verify($code))){
|
|
|
|
|
$this->error('验证码错误');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$data['password'] = md5(md5(md5($data['salt']).md5($data['password'])."SR")."CMS"); //“SR”和“CMS”可修改
|
|
|
|
|
$data['create_at']=time();
|
|
|
|
|
$model = M("Member");
|
|
|
|
|
|
|
|
|
|
if ($model->where(array('username'=>$data['username']))->find()){
|
|
|
|
|
$this->error('用户名重复');
|
|
|
|
|
}
|
|
|
|
|
if ($model->where(array('email'=>$data['email']))->find()){
|
|
|
|
|
$this->error('邮箱重复');
|
|
|
|
|
}
|
2017-02-03 12:32:57 +08:00
|
|
|
if ($model->field('username,email,pid,salt,password,create_at')->data($data)->add()) {
|
2016-12-02 12:24:27 +08:00
|
|
|
|
|
|
|
|
$user = $model->where(array('username'=>$data['username']))->find();
|
2017-02-03 12:32:57 +08:00
|
|
|
|
2016-12-02 12:24:27 +08:00
|
|
|
$date =array(
|
|
|
|
|
'id' => $user['id'],
|
|
|
|
|
'update_at' => time(),
|
|
|
|
|
'login_ip' => get_client_ip(),
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
if($model->save($date)){
|
|
|
|
|
session('userId',$user['id']);
|
|
|
|
|
session('username',$user['username']);
|
|
|
|
|
session('token',md5(time().$user['salt']));
|
|
|
|
|
}
|
2017-02-07 17:41:22 +08:00
|
|
|
$this->success("注册成功,请先完善个人信息", U('info/index'));
|
2015-07-28 15:15:57 +08:00
|
|
|
} else {
|
2016-01-26 14:09:59 +08:00
|
|
|
$this->error("注册失败");
|
2015-07-28 15:15:57 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2017-02-03 12:32:57 +08:00
|
|
|
|
|
|
|
|
//验证码
|
|
|
|
|
public function verify(){
|
|
|
|
|
ob_clean();
|
|
|
|
|
$Verify = new \Think\Verify();
|
|
|
|
|
$Verify->codeSet = '123456789abcdefghijklmnopqrst';
|
|
|
|
|
$Verify->fontSize = 20;
|
|
|
|
|
$Verify->length = 4;
|
|
|
|
|
$Verify->entry();
|
|
|
|
|
}
|
|
|
|
|
protected function check_verify($code){
|
|
|
|
|
$verify = new \Think\Verify();
|
|
|
|
|
return $verify->check($code);
|
|
|
|
|
}
|
2015-07-28 15:15:57 +08:00
|
|
|
}
|