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 相关文章推荐
下载文件的点击数回填
Oct 09 PHP
php addslashes及其他清除空格的方法是不安全的
Jan 25 PHP
解析PHP中的unset究竟会不会释放内存
Jul 18 PHP
php实现MD5加密16位(不要默认的32位)
Aug 12 PHP
PHP开发框架kohana中处理ajax请求的例子
Jul 14 PHP
php限制ip地址范围的方法
Mar 31 PHP
解读PHP的Yii框架中请求与响应的处理流程
Mar 17 PHP
自制PHP框架之路由与控制器
May 07 PHP
php批量删除操作(数据访问)
May 23 PHP
PHP中引用类型和值类型功能与用法示例
Feb 26 PHP
php中加密解密DES类的简单使用方法示例
Mar 26 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
Nov 23 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脚本[带参数]的方法
2010/01/22 PHP
PHP 之Section与Cookie使用总结
2012/09/14 PHP
php使用反射插入对象示例分享
2014/03/11 PHP
php生成txt文件实例代码介绍
2016/04/28 PHP
微信支付开发维权通知实例
2016/07/12 PHP
PHP二维数组去重实例分析
2016/11/18 PHP
PHP中的自动加载操作实现方法详解
2019/08/06 PHP
javascript+css 网页每次加载不同样式的实现方法
2009/12/27 Javascript
Extjs显示从数据库取出时间转换JSON后的出现问题
2012/11/20 Javascript
JavaScript与DOM组合动态创建表格实例
2012/12/23 Javascript
在浏览器中打开或关闭JavaScript的方法
2015/06/03 Javascript
jQuery选择器特殊字符与属性空格问题
2017/08/14 jQuery
不到200行 JavaScript 代码实现富文本编辑器的方法
2018/01/03 Javascript
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
提升node.js中使用redis的性能遇到的问题及解决方法
2018/10/30 Javascript
layer iframe 设置关闭按钮的方法
2019/09/12 Javascript
react PropTypes校验传递的值操作示例
2020/04/28 Javascript
jQuery实现带进度条的轮播图
2020/09/13 jQuery
Python基础语言学习笔记总结(精华)
2017/11/14 Python
在pandas中一次性删除dataframe的多个列方法
2018/04/10 Python
Python 文本文件内容批量抽取实例
2018/12/10 Python
如何为Python终端提供持久性历史记录
2019/09/03 Python
python用tkinter实现一个gui的翻译工具
2020/10/26 Python
夏威夷灵感服装及配饰:Reyn Spooner
2018/09/18 全球购物
瑞典在互联网上最大的宠物商店:Animail
2020/10/31 全球购物
营销总经理的岗位职责
2013/12/15 职场文书
文秘人员工作职责
2014/01/31 职场文书
经典促销广告词大全
2014/03/19 职场文书
员工年终自我评价
2014/09/14 职场文书
四查四看自我剖析材料
2014/09/19 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
给校长的建议书范文
2015/09/14 职场文书
党风廉政教育心得体会2016
2016/01/22 职场文书
小学语文的各类谚语(70首)
2019/08/15 职场文书
浅谈Redis中的RDB快照
2021/06/29 Redis
MySQL窗口函数的具体使用
2021/11/17 MySQL