由于用惯了ThinkPHP之前的版本,一想到要用Session就直接用$_SESSION来存取,今天看了ThinkPHP5的手册,才发现原来这么用时不安全滴。ThinKPHP5对Session进行了封装,用的时候至少看起来安全多了。

 

Session的设置

 

如果想要操作Session,再Think PHP5中需要使用Think\Session这个类

代码示例如下:

namespace app\index\controller;
use think\Controller;
use think\Session;
class Index extends Controller{    
public function index()
    {        
        return $this->fetch();
    }    
    public function save($name='')
    {
        Session::set('user_name',$name);        
        $this->success('Session设置成功');
    }
}

Session的读取

 

读取Session最安全的方法是使用Think\Requet类的session方法

示例代码如下:

namespace app\index\controller;
use think\Request;
class User
{    
    public function index(Request $request)
    {   echo $request->session('user_name');        // 读取二维数组
        echo $request->session('user.name');
    }
}

使用这种方式不仅安全而且可以读取任意维度的Session变量。

当然也可以使用Session类来读取Session,不过这种方式最多只支持二维Session变量的读取

示例代码:

namespace app\index\controller;
use think\Session;
class User{    
public function index()
    {        
        echo Session::get('user_name');        
        echo Session::get('user.name');
    }
}

虽然有些麻烦,没有直接使用全局数组$_SESSION存入session变量方便,但是为了安全,值得一试。

本文首发顶求网,转载请注明出处。

ThinkPHP5中Session的使用的更多相关文章

  1. ASP.NET中Session的sessionState 4种mode模式

    1. sessionState的4种mode模式 在ASP.NET中Session的sessionState的4中mode模式:Off.InProc.StateServer及SqlServer. 2. ...

  2. Spring MVC中Session的正确用法<转>

    Spring MVC是个非常优秀的框架,其优秀之处继承自Spring本身依赖注入(Dependency Injection)的强大的模块化和可配置性,其设计处处透露着易用性.可复用性与易集成性.优良的 ...

  3. 【转】Spring MVC中Session的正确用法之我见

    Spring MVC是个非常优秀的框架,其优秀之处继承自Spring本身依赖注入(Dependency Injection)的强大的模块化和可配置性,其设计处处透露着易用性.可复用性与易集成性.优良的 ...

  4. 第三方支付过程中session失效问题

    第三方支付过程中session失效问题 时间 2015-05-13 12:36:23  IT社区推荐资讯 原文  http://itindex.net/detail/53436-session-问题 ...

  5. 跟我一起学WCF(8)——WCF中Session、实例管理详解

    一.引言 由前面几篇博文我们知道,WCF是微软基于SOA建立的一套在分布式环境中各个相对独立的应用进行交流(Communication)的框架,它实现了最新的基于WS-*规范.按照SOA的原则,相对独 ...

  6. Hibernate中Session的get和load

    hibernate中Session接口提供的get()和load()方法都是用来获取一个实体对象,在使用方式和查询性能上有一些区别.测试版本:hibernate 4.2.0. get Session接 ...

  7. C# Web中Session的使用

    1. 关于使用之前要注意的: 在使用session之前,一定要注意继承自System.Web.UI.Page,或在使用session时加上System.Web.HttpContext.Current: ...

  8. hibernate中session的获取使用以及其他注意事项

    hibernate中session的获取使用以及其他注意事项 前言:工作时,在同时使用Hibernate的getSession().getHibernateTemplate()获取Session后进行 ...

  9. hibernate中session

    hibernate中的session是一级缓存,可以理解为进程级的缓存.在进程运行期间一直存在. session可以理解为一个可以操作数据库的对象 具体如何操作数据库? session中有方法, 如果 ...

随机推荐

  1. CSS设置图片垂直居中的方法

    如果是应用了表格,那么设置单元格为align="center"就可以使其中的一切内容居中.如果没有应用表格要想设置图片居中就有点困难了.困难来自不按"常规出牌" ...

  2. 创建一个spring helloworld

    1.下载所需要的jar包 http://projects.spring.io/spring-framework/ 这里使用了maven方式给出jar <dependencies> < ...

  3. SPCOMM 接收数据不完整!该如何解决

    SPCOMM 接收数据不完整!该如何解决   SPCOMM 接收数据不完整!我作了一个 读取地磅数据的程序,是用spcomm接收的! 总共有五台地磅,其他4台地磅数据读取都正常.但是有一台接收数据的时 ...

  4. Gradle多渠道打包[umeng]

    前言 国内Android应用市场品种太多,血统不纯,每次上线App都打包打到手软,上传上到吐血!好在我们有了Android studio和gradle,一条命令打包各种渠道版本App! 正文 Umen ...

  5. HappyNum

    /*Write an algorithm to determine if a number is "happy". A happy number is a number defin ...

  6. 安装Ubuntu下的开发工具

    刚安装好的Ubuntu,还缺乏很多开发工具.这些工具都可以通过网络进行安装. 1. 更新软件源$ sudo apt-get update 2.安装.配置.启动ftp服务.执行以下命令安装,安装后即会自 ...

  7. OpenGL的学习与认识

    OpenGL: Open Graphics Library 一套三维图形处理库,也是该领域的工业标准.是一个定义了一个跨编程语言,跨平台的编程接口规格的专业的图形程序接口.它用于三维图像(二维的亦可) ...

  8. ibatis cannot find <sql> pattern

    "Could not find SQL statement to include with refid xxx"A: 认真把每个用到xxx的地方都看一遍

  9. Spark History Server配置使用

    Spark history Server产生背景 以standalone运行模式为例,在运行Spark Application的时候,Spark会提供一个WEBUI列出应用程序的运行时信息:但该WEB ...

  10. JavaScript对象的创建之构造函数

    通过构造函数的方式创建和基于工厂的创建类似,最大的区别就是函数的名称就是类的名称,按照java的约定,第一个字母大写. 使用构造函数创建对象时,在函数内部是通过this关键字来完成属性的定义. fun ...