thinkphp5 开发会员注册与登录功能

1688源码 | 2019-04-06 17:17:43 |

 会员的注册与登录不少新手学员可能没有做过,感到比较疑惑,其实是非常简单的,下面我们就来说一下:注册实际上就是创建了一个添加数据的表单,和我们在后台添加文章的表单道理是一样的,只不过在前台的时候我们往数据表里面添加的是用户的信息罢了,登录就更简单了,也是创建一个表单,这次接到表单信息后就不是添加数据了,而是判断你提交的数据在我们的用户表里面是否存在,如果存在的话你提交的用户名和密码是否匹配,总体思路仅此而已,下面我们贴出核心代码供大家参考:

首先要有一个用户表,最基本的三个字段是:id,usernam,password缺一不可

有时候我们还会添加一些其他的字段,比如:会员的注册时间,注册地址,最后一次登录的时间,登录的ip等等,具体要根据你的业务需求来决定。

我们本次的演示是通过tp5的代码来演示,但是不管你使用什么框架或是原生也好,思路都是一样的:

这里是注册界面:

这个是登录界面:

注册逻辑:
public function reg(){
if(request()->isPost()){
$data=input(‘post.’);
$validate = validate(‘User’);
if(!$validate->check($data)){
$this->error($validate->getError());
}
$userData=array();
$userData[‘username’]=trim($data[‘username’]);
$userData[‘password’]=md5($data[‘password’]);
$userData[’email’]=$data[’email’];
$userData[‘mobile_phone’]=$data[‘mobile_phone’];
$userData[‘register_type’]=$data[‘register_type’];
$userData[‘register_time’]=time();
$add=db(‘user’)->insert($userData);
if($add){
$loginRes=$this->login(1);
if($loginRes[‘error’] == 0){
$this->success(‘注册成功!正在为您跳转…’,’member/User/index’);
}else{
$this->success(‘注册成功!正在为您跳转…’,’member/Account/login’);
}
}else{
$this->error(‘注册失败!’);
}
}
return view();
}
 

登录的逻辑代码:


public function login($type=0){
if(request()->isPost()){
$data=input(‘post.’);
return model(‘user’)->login($data,$type);
}
return view();
}
 

上面的登录代码是控制器的逻辑,具体实现登录的代码在模型层:


public function login($data,$type=0){
$userData=array();
$userData[‘username’]=trim($data[‘username’]);
$userData[‘password’]=md5($data[‘password’]);
//验证用户名或邮箱或手机号是否存在
$users=db(‘user’)->where(array(‘username’=>$userData[‘username’]))->whereOr(array(’email’=>$userData[‘username’]))->whereOr(array(‘mobile_phone’=>$userData[‘username’]))->find();
// dump($users); die;
if($users){
if($users[‘password’] == $userData[‘password’]){
session(‘uid’,$users[‘id’]);
session(‘username’,$users[‘username’]);
//写入会员等级及折扣率
$points=$users[‘points’];
$memberLevel=db(‘member_level’)->where(‘bom_point’,'<=’,$points)->where(‘top_point’,’>=’,$points)->find();
session(‘level_id’,$memberLevel[‘id’]);//等级id
session(‘level_rate’,$memberLevel[‘rate’]);//等级折扣率
//写入cookie
if(isset($data[‘remember’])){
$aMonth=30*24*60*60;
$username=encryption($users[‘username’],0);
$password=encryption($data[‘password’],0);
cookie(‘username’, $username, $aMonth, ‘/’);
cookie(‘password’, $password, $aMonth, ‘/’);
}
$arr=[
‘error’=>0,
‘message’=>"",
];
if($type == 1){
return $arr;
}else{
return json($arr);
}
}else{
$arr=[
‘error’=>1,
‘message’=>"<i class=’iconfont icon-minus-sign’></i>用户名或者密码错误",
‘url’=>”,
];
if($type == 1){
return $arr;
}else{
return json($arr);
}
}
}else{
$arr=[
‘error’=>1,
‘message’=>"<i class=’iconfont icon-minus-sign’></i>用户名或者密码错误",
‘url’=>”,
];
if($type == 1){
return $arr;
}else{
return json($arr);
}
}
}
[/php]

具体的退出的代码我们也来说一下吧:

[php]
public function logout(){
session(NUll);
cookie(‘username’,null);
cookie(‘password’,null);
}
 

ok了。是不是非常简单。

精品源码
  • 织梦万能API 百度小程序插件

    惊爆价¥400原价¥800

    立即购买
  • 我爱登报网 百度小程序源码 织梦CMS后台

    惊爆价¥520原价¥1040

    立即购买
  • 索娜根布黑枸杞 百度小程序源码 织梦CMS后台

    惊爆价¥520原价¥1040

    立即购买
视觉焦点

推荐文章

帝国CMS简洁信息提示页模板源码

帝国CMS 灵动标签调用所有tags代码

DEDECMS织梦后台自定义表单添加搜索功能

帝国CMS7.5 列表页获取图集图片数量代码

最新文章

关注我们

微信扫一扫,关注更多精彩

  • 1688源码公众号
    全面掌握源码一手资讯

  • 1688源码公众号
    精彩活动,推送提醒