ThinkPHP5中Session的使用
由于用惯了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的使用的更多相关文章
- ASP.NET中Session的sessionState 4种mode模式
1. sessionState的4种mode模式 在ASP.NET中Session的sessionState的4中mode模式:Off.InProc.StateServer及SqlServer. 2. ...
- Spring MVC中Session的正确用法<转>
Spring MVC是个非常优秀的框架,其优秀之处继承自Spring本身依赖注入(Dependency Injection)的强大的模块化和可配置性,其设计处处透露着易用性.可复用性与易集成性.优良的 ...
- 【转】Spring MVC中Session的正确用法之我见
Spring MVC是个非常优秀的框架,其优秀之处继承自Spring本身依赖注入(Dependency Injection)的强大的模块化和可配置性,其设计处处透露着易用性.可复用性与易集成性.优良的 ...
- 第三方支付过程中session失效问题
第三方支付过程中session失效问题 时间 2015-05-13 12:36:23 IT社区推荐资讯 原文 http://itindex.net/detail/53436-session-问题 ...
- 跟我一起学WCF(8)——WCF中Session、实例管理详解
一.引言 由前面几篇博文我们知道,WCF是微软基于SOA建立的一套在分布式环境中各个相对独立的应用进行交流(Communication)的框架,它实现了最新的基于WS-*规范.按照SOA的原则,相对独 ...
- Hibernate中Session的get和load
hibernate中Session接口提供的get()和load()方法都是用来获取一个实体对象,在使用方式和查询性能上有一些区别.测试版本:hibernate 4.2.0. get Session接 ...
- C# Web中Session的使用
1. 关于使用之前要注意的: 在使用session之前,一定要注意继承自System.Web.UI.Page,或在使用session时加上System.Web.HttpContext.Current: ...
- hibernate中session的获取使用以及其他注意事项
hibernate中session的获取使用以及其他注意事项 前言:工作时,在同时使用Hibernate的getSession().getHibernateTemplate()获取Session后进行 ...
- hibernate中session
hibernate中的session是一级缓存,可以理解为进程级的缓存.在进程运行期间一直存在. session可以理解为一个可以操作数据库的对象 具体如何操作数据库? session中有方法, 如果 ...
随机推荐
- 使用matplot绘图 @python
1. 使用csv 模块读取数据 2. 定义label 3. 绘图,调参 #!/usr/bin/env python # coding=utf-8 import sys import matplotli ...
- C++学习30 重载++和--(自增自减运算符)
自增“++”和自减“--”都是一元运算符,它的前置形式和后置形式都可以被重载.请看下面的例子: #include <iostream> #include <iomanip> u ...
- Aspose.Cells单元格转换为数字格式
需要在两个地方设置 //Adding a numeric value to "A2" cell "; worksheet.Cells["A2"].Pu ...
- [SQL]SQL删除数据的各种方式总结
SQL删除数据的各种方式总结 一.使用DELETE从表中删除目标行.记录每次删除操作.如: USE pubs DELETE FROM authors WHERE au_lname = 'McBadde ...
- Appium技术点之解决屏幕无法点击的情况————Python版本
1.导入包: from appium.webdriver.common.touch_action import TouchAction 2.写代码 TouchAction(driver).pop(x= ...
- UI_RD协作开发流程
1. 背景 由于android端需要进行多屏幕适配,这就给UI&RD之间的沟通产生了一些困难.我下面将会对这两种角色的沟通,说明了一下我们项目中沟通的方式和规则. 原则:客户端跟UI约定了各种 ...
- this.Invoke
this.Invoke(new Action(() => { }));
- 在虚拟机上安装红帽Linux.5.5.for.x86.服务器版系统(按针对安装oracle 10g作的配置)
在虚拟机上安装红帽Linux.5.5.for.x86.服务器版系统(按针对安装oracle 10g作的配置) 软件版本: 虚拟机版本:vmwareworkstation 7.11 build-28 ...
- MySQL常用命令(待更新)
1.登录到mysql:mysql -hlocalhost -uroot -p2.创建数据库:create database:3.使用数据库:use database:4.创建表:人员:qacreate ...
- webpack基础+webpack配置文件常用配置项介绍+webpack-dev-server
一.webpack基础 1.在项目中生成package.json:在项目根目录中输入npm init,根据提示输入相应信息.(也可以不生成package.json文件,但是package.json是很 ...