session存储不了数据,返回null

来源:6-10 后台用户登录-数据更新和session处理

慕粉1472091201

2020-04-14

试了很久,都找不出原因,请老师解答

1,开启中间件session


<?php
// 全局中间件定义文件
return [
    // 全局请求缓存
    // \think\middleware\CheckRequestCache::class,
    // 多语言加载
    // \think\middleware\LoadLangPack::class,
    // Session初始化

     \think\middleware\SessionInit::class
];

2.在admin文件夹下创建config文件夹,创建admin.php

<?php

return [
    'session_admin'=>'adminUsera'
];

3.使用session用config文件夹中admin文件的进行存储

<?php



namespace app\admin\controller;


use app\BaseController;

use think\facade\View;
use app\common\model\sql\AdminUser as adminUserOjb;



class Login extends BaseController
{
    public function index(){
        return View::fetch();
    }

    public function md5(){
       dump(config("admin.session_admin"));
    }


    public function check(){
        if (!$this->request->isPost()){
            return show(config("status.error"),"请求方式错误");
        }
        $username=$this->request->param('username');
        $password=$this->request->param('password');
        $captcha=$this->request->param('captcha');

        if (empty($username) || empty($password) || empty($captcha)){
           return show(config("status.error"),"数据不能为空");
        }
//判断验证码是否正确
        if (!captcha_check($captcha)){
            return show(config("status.error"),"验证码不正确");
        }

//        判断用户是否存在
        $adminUserOjb = new adminUserOjb();
        if (empty($adminUser=$adminUserOjb->getUserByName($username))){
            return show(config("status.error"),'用户不存在');
        }


        $adminUser=$adminUser->toArray();


//        判断密码是否正确
        if ($adminUser['password']!=md5($password."_singwa_abc")){
            return show(config("status.error"),'密码错误');
        }
//全部正确则更新登录数据,更新session
        $newData=[
            "last_login_ip"=>$this->request->ip(),
            "update_time"=>time(),
        ];



        if (empty($adminUserOjb->updateAdminData($adminUser['id'],$newData))){
            return show(config("status.error"),"登录失败");
        };




//全部正确,更新session  ----------------------------问题关键-------------------------------

         session(config("admin.session_admin"),$adminUser);



        return show(config("status.success"),"登录成功");



    }

}

43.登录成功后,访问md5方法,返回值为

^ "adminUsera"
写回答

2回答

keryz

2020-04-14

   同学你好,你应该这样访问,需要加入session包起来,看看有效果吗

    public function md5(){
      dump(session(config("admin.session_admin")));
   }

0
0

1014407916

2021-02-26

我也遇到了,不过我调试方法时发现是我model层的数据没有return回来所以显示null,你可以打印试试,看看$res有没有dump出数据,如果没有的话那就是因为你没有查询到数据所以显示null

0
0

全流程开发 TP6.0实战高并发电商服务系统

一课就能掌握TP6.0基础及运用,打造完整高并发的电商后端项目

1449 学习 · 1308 问题

查看课程