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中动态显示签名和ip原理
Mar 28 PHP
php Ajax乱码
Apr 09 PHP
你可能不知道PHP get_meta_tags()函数
May 12 PHP
php获取指定日期之间的各个周和月的起止时间
Nov 24 PHP
THINKPHP2.0到3.0有哪些改进之处
Jan 04 PHP
PHP函数超时处理方法
Feb 14 PHP
YII Framework框架教程之使用YIIC快速创建YII应用详解
Mar 15 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
Nov 15 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
Feb 07 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
Jul 27 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
Oct 17 PHP
laravel 实现根据字段不同值做不同查询
Oct 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
Memcache 在PHP中的使用技巧
2010/02/08 PHP
php生成局部唯一识别码LUID的代码
2012/10/06 PHP
解析php中memcache的应用
2013/06/18 PHP
PHP中JSON的应用技巧
2015/10/10 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
JavaScript 程序编码规范
2010/11/23 Javascript
关于JavaScript的with 语句的使用方法
2011/05/09 Javascript
JS+CSS实现简易的滑动门效果代码
2015/09/24 Javascript
JavaScript中访问id对象 属性的方式访问属性(实例代码)
2016/10/28 Javascript
Three.js中网格对象MESH的属性与方法详解
2017/09/27 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
[03:09]2014DOTA2国际邀请赛 Mushi前队友送上祝福
2014/07/12 DOTA
[00:33]2016完美“圣”典风云人物:BurNIng宣传片
2016/12/10 DOTA
Python Mysql自动备份脚本
2008/07/14 Python
python中的错误处理
2016/04/10 Python
Python爬虫常用小技巧之设置代理IP
2018/09/13 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
2018/11/29 Python
python_opencv用线段画封闭矩形的实例
2018/12/05 Python
python实现视频分帧效果
2019/05/31 Python
pyqt5 实现多窗口跳转的方法
2019/06/19 Python
解决python-docx打包之后找不到default.docx的问题
2020/02/13 Python
Python使用windows设置定时执行脚本
2020/11/12 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
荷兰皇家航空公司中国官网:KLM中国
2017/12/13 全球购物
瑞典廉价机票预订网站:Seat24
2018/06/19 全球购物
汽车运用工程毕业生自荐信
2013/10/29 职场文书
生产车间主管岗位职责
2013/12/28 职场文书
领导检查欢迎词
2014/01/14 职场文书
师范毕业生自我鉴定
2014/01/15 职场文书
党校培训自我鉴定
2014/02/01 职场文书
读群众路线心得体会
2014/03/07 职场文书
元旦联欢会主持词
2014/03/26 职场文书
工厂车间标语
2014/06/19 职场文书
先进单位事迹材料
2014/12/25 职场文书
布达拉宫导游词
2015/02/02 职场文书
Python中文纠错的简单实现
2021/07/07 Python