美工统筹SEO,为企业电子商务营销助力!
ThinkPHP对session的操纵体例汇总
一佰互联网站建造(www.taishanly.com) 宣布日期 2020-04-29 09:01:08 阅读数: 116
本文详细报告了ThinkPHP对session的各类操纵体例,概况以下:
ThinkPHP操纵session官方的申明文档以下:
start 启动session
pause 停息session
clear 断根session
destroy 烧毁session
get 获得session值
getLocal 获得公有session值
set 设置session值
setLocal 设置公有session值
name 获得或设置session_name
is_set 是不是设置session值
is_setLocal 是不是设置公有session值
id 获得或设置session_id
path 获得或设置session_save_path
setExpire 设置session过时时 间
setCookieDomain 设置有用域名
setCallback 设置Session 工具反序列化时辰的回调函数
最经常操纵的操纵体例示例代码以下:
// 检测Session变量是不是存在 Session::is_set("name"); // 给Session变 量赋值 Session::set("name","value"); // 获得Session变量 Session::get("name");
和Session相干的设置装备摆设参数代码以下:
"SESSION_NAME"=>"ThinkID", // 默许Session_name "SESSION_PATH"=>"", // 接纳默许的Session save path "SESSION_TYPE"=>"File", // 默许Session范例 撑持 DB 和 File "SESSION_EXPIRE"=>"300000", // 默许Session有用期 "SESSION_TABLE"=>"think_session", // 数据库Session体例表名 "SESSION_CALLBACK"=>"", // 反序列化工具的回调体例
此中SESSION_NAME 参数须要注重,若是须要在差别的名目之间差别享通报Session的值,请设置差别的值,不然请保留不异的默许值。
若是设置了不异的SESSION_NAME的值,可是又但愿建立基于名目的公有Session空间,应当怎样处置呢?ThinkPHP还撑持以名目为 Session空间的公有Session操纵,以之前的经常操纵操纵为例,咱们变动以下:
// 检测Session变量是不是存在(以后名目有用) Session::is_setLocal("name"); // 给Session变 量赋值(以后名目有用) Session::setLocal("name","value"); // 获得Session变量(以后 名目有用) Session::getLocal("name");
如许,和全局的Session操纵就不会抵触,能够用于一些特别环境的须要。
ThinkPHP撑持数据库体例的Session操纵,设置SESSION_TYPE的值为DB就能够了,若是操纵数据库体例,还要确保设置好SESSION_TABLE的值,并且导入上面的DDL到你的 数据库(以MySQL为例子):
CREATE TABLE `think_session` ( `id` int(11) unsigned NOT NULL auto_increment, `session_id` varchar(255) NOT NULL, `session_expires` int(11) NOT NULL, `session_data` blob, PRIMARY KEY(`id`) )
注重,Db Session体例的数据库毗连会接纳名目的数据库设置装备摆设信息停止毗连。除数据库体例外,还能够增添别的体例的Session保管机制,比方内存体例、 Memcache体例等,咱们只需增添响应的过滤器就好了,操纵session_set_save_handler 体例,详细的体例界说参考Think.Util.Filter上面的FilterSessionDb.class.php 文件的完成。
建造了一个简略的登岸判定
登岸检测以后付与Session值,使Session的值为非空即为假的false
$_SESSION[C("USER_AUTH_KEY")] = $logInFind["id"] ;
此中 [C("USER_AUTH_KEY")]为ThinkPHP的内置体例和函数类。在未设置装备摆设config.php文件时默许为空
把$logInFind["id"] 掏出的帐号值付与它,默许为封闭页面Session就主动删除消逝!
别的页面操纵上面格局判定
if(!isset($_SESSION[C("USER_AUTH_KEY")])) { //isset 是检测变量是不是赋值! $this->redirect("Login","Login"); //转到注书页面 }