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 文件缓存的性能测试
Apr 25 PHP
php的日期处理函数及uchome的function_coomon中日期处理函数的研究
Jan 12 PHP
PHP5 的对象赋值机制介绍
Aug 02 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
Nov 05 PHP
php将金额数字转化为中文大写
Jul 09 PHP
PHP计算日期相差天数实例分析
Feb 23 PHP
PHP如何使用Memcached
Apr 05 PHP
PHP创建/删除/复制文件夹、文件
May 03 PHP
php函数传值的引用传递注意事项分析
Jun 25 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
Mar 22 PHP
PHP下用Swoole实现Actor并发模型的方法
Jun 12 PHP
Laravel框架创建路由的方法详解
Sep 04 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实现Mongodb自定义方式生成自增ID的方法
2015/03/23 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
php 开发中加密的几种方法总结
2017/03/22 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
Thinkphp自定义生成缩略图尺寸的方法
2019/08/05 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
popdiv
2006/07/14 Javascript
解析JavaScript中的不可见数据类型
2013/12/02 Javascript
javascript的函数作用域
2014/11/12 Javascript
javascript动态修改Li节点值的方法
2015/01/20 Javascript
jQuery实现获取选中复选框的值实例详解
2018/06/28 jQuery
vue ssr 指南详读
2018/06/29 Javascript
vue 动态绑定背景图片的方法
2018/08/10 Javascript
使用pkg打包Node.js应用的方法步骤
2018/10/19 Javascript
Vue组件之单向数据流的解决方法
2018/11/10 Javascript
Vue源码探究之虚拟节点的实现
2019/04/17 Javascript
在react中使用vue的状态管理的方法示例
2020/05/02 Javascript
vue实现点击按钮“查看详情”弹窗展示详情列表操作
2020/09/09 Javascript
js实现碰撞检测
2021/01/29 Javascript
Python 正则表达式(转义问题)
2014/12/15 Python
Python Web框架Tornado运行和部署
2020/10/19 Python
django基础之数据库操作方法(详解)
2017/05/24 Python
Python使用itertools模块实现排列组合功能示例
2018/07/02 Python
python 定时任务去检测服务器端口是否通的实例
2019/01/26 Python
PyCharm安装Markdown插件的两种方法
2019/06/24 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
python re.sub()替换正则的匹配内容方法
2019/07/22 Python
PIP和conda 更换国内安装源的方法步骤
2020/09/21 Python
如何使用Pytorch搭建模型
2020/10/26 Python
2分钟教你实现环形/扇形菜单(基础版)
2020/01/15 HTML / CSS
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
初中军训感想300字
2014/03/05 职场文书
出差报告怎么写
2014/11/06 职场文书
中学生清明节演讲稿
2015/03/18 职场文书
2015年保洁员工作总结
2015/05/04 职场文书