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 相关文章推荐
Classes and Objects in PHP5-面向对象编程 [1]
Oct 09 PHP
php之XML转数组函数的详解
Jun 07 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
Nov 14 PHP
php遍历树的常用方法汇总
Jun 18 PHP
PHP导入导出Excel代码
Jul 07 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
Oct 22 PHP
PHP实现的oracle分页函数实例
Jan 25 PHP
php处理json格式数据经典案例总结
May 19 PHP
PHP控制前台弹出对话框的实现方法
Aug 21 PHP
php实现 master-worker 守护多进程模式的实例代码
Jul 20 PHP
laravel实现于语言包的完美切换方法
Sep 29 PHP
YII2框架中添加自定义模块的方法实例分析
Mar 18 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学习笔记之二 php入门知识
2011/01/12 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
模板引擎smarty工作原理以及使用示例
2014/05/25 PHP
thinkphp实现发送邮件密码找回功能实例
2014/12/01 PHP
浅谈php7的重大新特性
2015/10/23 PHP
php实现学生管理系统
2020/03/21 PHP
Laravel获取所有的数据库表及结构的方法
2019/10/10 PHP
Laravel框架Blade模板简介及模板继承用法分析
2019/12/03 PHP
学习ExtJS accordion布局
2009/10/08 Javascript
jquery实现心算练习代码
2010/12/06 Javascript
jQuery插件开发全解析
2012/10/10 Javascript
使用javascript过滤html的字符串(注释标记法)
2013/07/08 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
2014/10/20 Javascript
JS实现一个按钮的方法
2015/02/05 Javascript
最新最热最实用的15个jQuery插件汇总
2015/07/05 Javascript
JavaScript代码实现左右上下自动晃动自动移动
2016/04/08 Javascript
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
vue-router 前端路由之路由传值的方式详解
2019/04/30 Javascript
vue实现tab栏点击高亮效果
2020/08/19 Javascript
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
Python网络爬虫中的同步与异步示例详解
2018/02/03 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
Python I/O与进程的详细讲解
2019/03/08 Python
Mac安装python3的方法步骤
2019/08/09 Python
python读取hdfs并返回dataframe教程
2020/06/05 Python
浅析Python 条件控制语句
2020/07/15 Python
实例讲解CSS3中的box-flex弹性盒属性布局
2016/06/09 HTML / CSS
HTML5 canvas画图并保存成图片的jcanvas插件
2014/01/17 HTML / CSS
个人授权委托书
2014/04/03 职场文书
教师业务培训方案
2014/05/01 职场文书
小学优秀班干部事迹材料
2014/05/25 职场文书
幼儿园安全生产月活动总结
2014/07/05 职场文书
2016教师廉洁教育心得体会
2016/01/13 职场文书
Python3 使用pip安装git并获取Yahoo金融数据的操作
2021/04/08 Python
Spring Data JPA使用JPQL与原生SQL进行查询的操作
2021/06/15 Java/Android
vue3种table表格选项个数的控制方法
2022/04/14 Vue.js