这一段在用thinkPHP5开发微信小程序接口的时候,在同一个控制器一个方法中存入session,在另一个方法中取出session,一直都是无法取出。

查阅各种资料得到原因:thinkPHP5里面的session是给浏览器用的,非浏览器的方式是没有办法访问到那个session的,只能用其他方式来代替session。

对策:

1.(推荐)使用TP5自带的缓存方法

可以完美代替session,甚至可以每条手动设置时间,比session更方便,

(用过tp5自带session的肯定知道,session时间一般是固定的,用起来很僵硬)。

//设置缓存(有效期3600秒)

Cache::set('name',$value,3600);

//获取缓存数据可以使用:

Cache::get('name');

提醒一下,如果$value是数组的话要先json_encode()编码成字符串再用

2.Redis方法(此方法稍微麻烦一些)

按照教程在服务器上配置好redis数据库

使用方法直接上代码:

//存入redis
//开启redis数据库服务
$redis = new Redis();
//连接ridis数据库
$redis->connect('127.0.0.1', 6379);
//存入数据(有效期3600秒)
$redis->set($sessioncode,$value, 3600); //取出redis
//开启redis数据库服务
$redis = new Redis();
//连接ridis数据库
$redis->connect('127.0.0.1', 6379);
//取出数据
$data = $redis->get($session);

同样,提醒一下,如果$value是数组的话要先json_encode()编码成字符串再用

3.使用memcache

上述三种方法均可,建议使用第一种。

(本文为原创文章,转载请注明来自:http://www.cnblogs.com/piaobodewu/)

Thinkphp5 的sesssion在同一个控制器不同的方法无法获取session的原因和对策的更多相关文章

  1. 分段控制器UISegmentedControl的使用、同一个控制器中实现多个View的切换、addChildViewController等方法的使用

    本文先讲解简单的分段控制器UISegmentedControl的使用,然后具体讲解它最常使用的场景:同一个控制器中实现多个View的切换. 文章构思: 1.先直接讲解一张UI效果图的四种实现方式. 2 ...

  2. thinkphp5.0 空模块、空控制器、空方法

    空模块 'exception_handle' => function(Exception $e){ // 参数验证错误 if ($e instanceof \think\exception\Va ...

  3. Thinkphp--------为什么Thinkphp会默认进入Index控制器的index方法

    最近遇到两个刚学PHP的童鞋,都问到了同一个问题,就是他们没有做什么配置,为什么访问入口文件index.php的时候会自动跳转到IndexController里面的index方法.他们想知道具体怎么回 ...

  4. Web APi之控制器选择Action方法过程(九)

    前言 前面我们叙述了关于控制器创建的详细过程,在前面完成了对控制器的激活之后,就是根据控制器信息来查找匹配的Action方法,这就是本节要讲的内容.当请求过来时首先经过宿主处理管道然后进入Web AP ...

  5. MVC中视图View向控制器传值的方法

    MVC中视图View向控制器传值的方法步骤如下: 1.index页面: 页面中只需要一个触发事件的按钮

  6. iOS_16_开关控制器_modal_代码方法

    最后效果图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5lbnQ=/font/5a6L5L2T/fontsize/400/fill ...

  7. asp.net -mvc框架复习(3)-控制器和动作方法的任务分析

    using System;using System.Collections.Generic;using System.Linq;using System.Web;//ASP.NET核心命名空间usin ...

  8. .NET CORE控制器里的方法取传参的坑

    把以前的ASP.NET MVC的项目改成用.NET CORE来写,写好了部署上去了,结果问题一大堆,今天慢慢检查了一下,发现一个大坑: 写控制器里的方法接收参数数都是直接写在控制器的方法参数里的,如: ...

  9. legend2---开发日志10(ajax请求的方法是否同样会执行base控制器里面的方法)

    legend2---开发日志10(ajax请求的方法是否同样会执行base控制器里面的方法) 一.总结 一句话总结:会执行的,所以写base控制器里面的方法要注意,base控制器里面的方法要以查数据为 ...

随机推荐

  1. linux 的常用命令(2)

    tail [必要参数] [选择参数] [文件] | 显示文件结尾内容  -v  显示详细的处理信息-q  不显示处理信息-num/-n (-)num      显示最后num行内容-n +num 从第 ...

  2. golang map多层嵌套使用及遍历方法汇总

    原文:https://blog.csdn.net/boyhandsome7/article/details/79734847 ------------------------------------- ...

  3. golang type conversion

    map[string]interface{} is not the same as map[string]string. Type interface{} is not the same as typ ...

  4. 二叉堆的应用——查找长度为N数组中第M大数

    看到这个题目首先想到是排序,那么时间复杂度自然就是O(NlgN).那么使用二叉堆如何解决呢? 对于下面一个数组,共有12个元素,我们的目标就是找出第5大元素——12 首先建立一个具有M个元素的最小堆, ...

  5. Vue完成页面切换中加载数据

    created() { // 拿到路由传递来的car主键 let pk = this.$route.query.pk || this.$route.params.pk; // 主键不存在,就直接结束方 ...

  6. BZOJ 1188 / Luogu P3185 [HNOI2007]分裂游戏 (SG函数)

    题意 有n个格子,标号为0 ~ n-1,每个格子上有若干石子,每次操作可以选一个0 ~ n-2的格子上的一颗石子,分裂为两颗,然后任意放在后面的两个格子内,这两个格子可以相同.求使先手必胜的第一步的方 ...

  7. SpringBoot——》WebMvcConfigurerAdapter详解

    一.WebMvcConfigurerAdapter是什么二.WebMvcConfigurerAdapter常用的方法1.addInterceptors:拦截器2.addCorsMappings:跨域3 ...

  8. luogu 3047 [USACO12FEB]附近的牛Nearby Cows 树形dp

    $k$ 十分小,直接暴力维护 $1$~$k$ 的答案即可. 然后需要用父亲转移到儿子的方式转移一下. Code: #include <bits/stdc++.h> #define M 23 ...

  9. [Cogs] 最大数maxnumber

    http://cogs.pro:8080/cogs/problem/problem.php?pid=1844 Luogu 的数据真zhizhang Cogs AC #include <iostr ...

  10. 《30天自制操作系统》学习笔记--Mac环境搭建

    弄了三天了,终于弄好了,先说结果,就是作者在网站上放了os x的工具(hrb.osask.jp,也有linux下的工具,可以自己去下载),也就是说我白忙活了三天... 再说一下这几天都干啥了,主要是想 ...