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 相关文章推荐
echo(),print(),print_r()之间的区别?
Nov 19 PHP
php 全局变量范围分析
Aug 07 PHP
简单的移动设备检测PHP脚本代码
Feb 19 PHP
让Json更懂中文(JSON_UNESCAPED_UNICODE)
Oct 27 PHP
php模拟post行为代码总结(POST方式不是绝对安全)
Feb 22 PHP
360通用php防护代码(使用操作详解)
Jun 18 PHP
使用PHP下载CSS文件中的图片的代码
Sep 24 PHP
thinkPHP模板算术运算相关函数用法分析
Jul 12 PHP
php阳历转农历优化版
Aug 08 PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
Dec 28 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
Mar 14 PHP
PHP设计模式之单例模式定义与用法分析
Mar 26 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 读取文件的正确方法
2009/04/29 PHP
php关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
PHP简洁函数小结
2011/08/12 PHP
php通过数组实现多条件查询实现方法(字符串分割)
2014/05/06 PHP
PHP中的Streams详细介绍
2014/11/12 PHP
phpstorm配置Xdebug进行调试PHP教程
2014/12/01 PHP
PHP缓存集成库phpFastCache用法
2014/12/15 PHP
PHP生成制作验证码的简单实例
2016/06/12 PHP
php自定义函数实现汉字转换utf8编码的方法
2016/09/29 PHP
php的PDO事务处理机制实例分析
2017/02/16 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
原生JS实现的放大镜效果实例代码
2016/10/15 Javascript
浅述节点的创建及常见功能的实现
2016/12/15 Javascript
JS返回只包含数字类型的数组实例分析
2016/12/16 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
2017/09/20 Javascript
JS实现验证码倒计时的注册页面
2018/01/02 Javascript
bootstrap-table formatter 使用vue组件的方法
2019/05/09 Javascript
原生js实现瀑布流效果
2020/03/09 Javascript
python列表使用实现名字管理系统
2019/01/30 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
python字典的常用方法总结
2019/07/31 Python
美国折扣宠物药房:Total Pet Supply
2018/05/27 全球购物
英国领先的在线鱼贩:The Fish Society
2020/08/12 全球购物
商场经理竞聘演讲稿
2014/01/01 职场文书
工程开工庆典邀请函
2014/02/01 职场文书
财务会计自荐信范文
2014/02/21 职场文书
中西医专业毕业生职业规划书
2014/02/24 职场文书
大课间活动实施方案
2014/03/06 职场文书
爱护公共设施的标语
2014/06/24 职场文书
销售竞赛活动方案
2014/08/23 职场文书
民间借贷协议书范本
2014/10/01 职场文书
2014年小学教研工作总结
2014/12/06 职场文书
2014年机关后勤工作总结
2014/12/16 职场文书
left join、inner join、right join的区别
2021/04/05 MySQL
vue中利用mqtt服务端实现即时通讯的步骤记录
2021/07/01 Vue.js