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实现的获取URL信息的类
Jan 02 PHP
PHP中通过加号合并数组的一个简单方法分享
Jan 27 PHP
php 解决旧系统 查出所有数据分页的类
Aug 27 PHP
php防止伪造数据从地址栏URL提交的方法
Aug 24 PHP
php提交过来的数据生成为txt文件
Apr 28 PHP
PHP正则表达式入门教程(推荐)
May 18 PHP
php微信浏览器分享设置以及回调详解
Aug 01 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
Feb 17 PHP
thinkPHP框架实现多表查询的方法
Jun 14 PHP
详解PHP变量传值赋值和引用赋值变量销毁
Mar 23 PHP
ThinkPHP5分页paginate代码实例解析
Nov 10 PHP
PHP遍历数组的6种方式总结
Nov 17 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和XSL stylesheets转换XML文档
2006/10/09 PHP
ThinkPHP中的关联模型注意点
2014/06/16 PHP
Zend Framework+smarty用法实例详解
2016/03/19 PHP
Zend Framework实现将session存储在memcache中的方法
2016/03/22 PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
2016/10/14 PHP
详解PHP归并排序的实现
2016/10/18 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
php使用curl下载指定大小的文件实例代码
2017/09/30 PHP
如何让您的中波更粗更长 - 中波框形天线制作
2021/03/10 无线电
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
JS实现self的resend
2010/07/22 Javascript
jQuery判断checkbox是否选中的3种方法
2014/08/12 Javascript
让JavaScript和其它资源并发下载的方法
2014/10/16 Javascript
JS实现统计复选框选中个数并提示确定与取消的方法
2015/07/01 Javascript
js图片跟随鼠标移动代码
2015/11/26 Javascript
Bootstrap弹出框(modal)垂直居中的问题及解决方案详解
2016/06/12 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
2017/01/13 Javascript
jQuery按需加载轮播图(web前端性能优化)
2017/02/17 Javascript
Android中Okhttp3实现上传多张图片同时传递参数
2017/02/18 Javascript
nodejs服务搭建教程 nodejs访问本地站点文件
2017/04/07 NodeJs
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
angular中如何绑定iframe中src的方法
2019/02/01 Javascript
详解小程序开发经验:多页面数据同步
2019/05/18 Javascript
vue+高德地图写地图选址组件的方法
2019/05/18 Javascript
浅谈vuex中store的命名空间
2019/11/08 Javascript
python使用paramiko模块实现ssh远程登陆上传文件并执行
2014/01/27 Python
Python获取电脑硬件信息及状态的实现方法
2014/08/29 Python
Python实现的圆形绘制(画圆)示例
2018/01/31 Python
Python实现去除图片中指定颜色的像素功能示例
2019/04/13 Python
tensorflow 动态获取 BatchSzie 的大小实例
2020/06/30 Python
CSS3 函数技巧 用css 实现js实现的事情(clac Counters Tooltip)
2017/08/15 HTML / CSS
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
奥地利度假券的专家:we-are.travel
2019/04/10 全球购物
竞选学生会主席演讲稿
2014/04/24 职场文书
计划生育工作总结2015
2015/04/03 职场文书
学习计划是什么
2019/04/30 职场文书