laravel框架实现后台登录、退出功能示例


Posted in PHP onOctober 31, 2019

本文实例讲述了laravel框架实现后台登录、退出功能。分享给大家供大家参考,具体如下:

我们在写后台管理系统时,登录,退出是避免不了的,那我们如何使用laravel实现呢?

首先,我们来看看登录如何实现?

//登录
public function logins(){
        //post方式则为登录操作
        if(Request()->isMethod('post')){
        $info = Request()->only('username','pwd');//过滤表单提交数据,接受用户名,密码
        $result = Admin::admin_login($info);//此处为调用模型,进行验证
        //根据模型返回的结果,进行判断登录状态
        if($result['status']==200){
          return redirect('index')->with('id',Session::get('userinfo')['uid']);
        }elseif($result['status']==205){
          return redirect('login')->with('msg',$result['message']);
        }elseif($result['status']==203){
          return redirect('login')->with('msg',$result['message']);
        }else{
          return redirect('login');
        }
        }elseif(Request()->isMethod('get')){//如果请求方式为get方式,说明为登录页面
          return view('CloudAdmin/login');
        }
    }

接下来,我们看模型的一些操作

//登录操作判断
public static function admin_login($info){
     if(empty($info['username'])){
       $result['status']=205;
       $result['message']="请输入用户名";
     }else{
      if(empty($info['pwd'])){
        $result['status']=205;
        $result['message']='请输入密码';
      }else{
        $user = DB::table('sc_admin')->where('username',$info['username'])->first();
        if(!$user){
          $result['status']=202;
          $result['message']="用户不存在";
        }else{
          if(md5($info['pwd'])!=$user->password){
          $result['status']=203;
          $result['message']="密码错误";
        }else{
            $userinfo = array('uid'=>$user->id,'username'=>$user->username);
            Session::put('userinfo',$userinfo);//登录成功,存储当前登录用户的id和用户名
            //$time--将最后登录时间以及登录状态进行更新
            $time = array('last_login'=>date('Y-m-d H:i:s'),'login_status'=>1);
            DB::table('sc_admin')->where('id',$user->id)->update($time);
            //保存服务器信息
            $web = array(
              'IP' => $_SERVER['REMOTE_ADDR'],
              'login_time' => date('Y-m-d H:i:s',$_SERVER['REQUEST_TIME']),
              'webserver' => $_SERVER['SERVER_SOFTWARE'],
              'admin'=>Session::get('userinfo')['username']
            );
            //将服务器信息入库
            DB::table('sc_webinfo')->insert($web);
            $result['status']=200;
            $result['message']="登录成功";
          }
        }
      }
    }
    return $result;
}

登录成功之后,一切都是基于session存在的情况下操作的,如果session信息不存在,则会返回登录界面;

再来看看退出操作:当前点击"退出"之后,我们应该执行那些操作?

//退出登录,清除session,返回登录页面
public function login_out(){
    //点击退出,将此用户的登录状态改变为未登录
    $array=array('login_status'=>0);
    DB::table('sc_admin')->where('id',Session::get('userinfo')['uid'])->update($array);
    //删除session信息
    Session::forget('userinfo');
    return redirect('login');
}

这就是一个简单的登录,当然,后台登录的管理,我们需要进行判断身份,在这里不多说

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
十天学会php之第一天
Oct 09 PHP
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
Nov 10 PHP
通过table标签,PHP输出EXCEL的实现方法
Jul 24 PHP
PHP统计二维数组元素个数的方法
Nov 12 PHP
PHP基于单例模式实现的mysql类
Jan 09 PHP
Symfony2创建基于域名的路由相关示例
Nov 14 PHP
thinkphp下MySQL数据库读写分离代码剖析
Apr 18 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
Jul 18 PHP
浅谈php调用python文件
Mar 29 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
Oct 21 PHP
php 多继承的几种常见实现方法示例
Nov 18 PHP
PHP的垃圾回收机制代码实例讲解
Feb 27 PHP
TP5框架简单登录功能实现方法示例
Oct 31 #PHP
Laravel框架实现即点即改功能的方法分析
Oct 31 #PHP
laravel 框架实现无限级分类的方法示例
Oct 31 #PHP
tp5框架的增删改查操作示例
Oct 31 #PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
Oct 30 #PHP
thinkPHP框架乐观锁和悲观锁实例分析
Oct 30 #PHP
PHP的HTTP客户端Guzzle简单使用方法分析
Oct 30 #PHP
You might like
php生成数字字母的验证码图片
2015/07/14 PHP
php5.3后静态绑定用法详解
2016/11/11 PHP
javascript jQuery $.post $.ajax用法
2008/07/09 Javascript
javaScript(JS)替换节点实现思路介绍
2013/04/17 Javascript
jQuery插件实现无缝滚动特效
2015/11/24 Javascript
JS实现Select的option上下移动的方法
2016/03/01 Javascript
详解Backbone.js框架中的模型Model与其集合collection
2016/05/05 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
2016/06/20 Javascript
深入理解JavaScript中的并行处理
2016/09/22 Javascript
angular.fromJson与toJson方法用法示例
2017/05/17 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
2018/01/25 Javascript
详解微信JS-SDK选择图片遇到的坑
2018/08/15 Javascript
js实现京东秒杀倒计时功能
2019/01/21 Javascript
Vuex 模块化使用详解
2019/07/31 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
[02:42]完美大师赛主赛事淘汰赛第三日观众采访
2017/11/25 DOTA
python统计中文字符数量的两种方法
2019/01/31 Python
详解Python:面向对象编程
2019/04/10 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
如何使用Cython对python代码进行加密
2020/07/08 Python
python 用pandas实现数据透视表功能
2020/12/21 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
完美解决IE8下不兼容rgba()的问题
2017/03/31 HTML / CSS
JavaScript+Canvas实现自定义画板的示例代码
2019/05/13 HTML / CSS
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
美国在线和移动免费会员制批发零售商:Boxed(移动端的Costco)
2020/01/02 全球购物
俄罗斯童装网上商店:BebaKids
2020/06/06 全球购物
通信工程毕业生自荐信
2013/11/01 职场文书
九年级家长会邀请函
2014/01/15 职场文书
校园之声广播稿
2014/01/31 职场文书
高考备战决心书
2014/03/11 职场文书
村党支部公开承诺书
2014/05/29 职场文书
争先创优演讲稿
2014/09/15 职场文书
2014年教师学期工作总结
2014/11/08 职场文书
一起来学习Python的元组和列表
2022/03/13 Python