如何在ThinkPHP中对会话进行操作

  介绍

如何在ThinkPHP中对会话进行操作?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

ThinkPHP操作会话官方的说明文档如下:

开始启动会话
暂停暂停会话
明确清除会话
摧毁销毁会话
获得获取会话值
getLocal获取私有会话值
设置设置会话值
对本地设置私有会话值
名称获取或者设置session_name
is_set是否设置会话值
is_setLocal是否设置私有会话值
id获取或者设置session_id
路径获取或者设置session_save_path
setExpire设置会话过期时间
setCookieDomain设置有效域名
setCallback设置会话对象反序列化时候的回调函数

最常用的操作方法示例代码如下:

//,检测会话变量是否存在   会话::is_set(& # 39;名字# 39;);//,给会话变,量赋值   会话::设置(& # 39;名字# 39;& # 39;价值# 39;);//,获取会话变量   会话:get(& # 39;名字# 39;);

和会话相关的配置参数代码如下:

& # 39; SESSION_NAME& # 39;=祝辞& # 39;ThinkID& # 39;,,,,,,,,,//,默认Session_name   & # 39;SESSION_PATH& # 39;=祝辞& # 39;& # 39;,,,,,,,,,,,,,//,采用默认的Session 节省;路径   & # 39;SESSION_TYPE& # 39;=祝辞& # 39;文件# 39;,,,,,,,,,,,,,//,默认会话类型,支持,DB 和,File    & # 39;SESSION_EXPIRE& # 39;=祝辞& # 39;300000 & # 39;,,,,,,,,,//,默认会话有效期   & # 39;SESSION_TABLE& # 39;=祝辞& # 39;think_session& # 39;,,,,,//,数据库会议方式表名   & # 39;SESSION_CALLBACK& # 39;=祝辞& # 39;& # 39;,,,,,,,,,,,,,//,反序列化对象的回调方法

其中SESSION_NAME参数需要注意,如果需要在不同的项目之间不共享传递会话的值,请设置不同的值,否则请保留相同的默认值。
如果设置了相同的SESSION_NAME的值,但是又希望创建基于项目的私有会话空间,应该怎么处理呢? ThinkPHP还支持以项目为会话空间的私有会话操作,以之前的常用操作为例,我们更改如下:

//,检测会话变量是否存在(当前项目有效)   会话::is_setLocal(& # 39;名字# 39;);//,给会话变,量赋值(当前项目有效)   会话::对本地(& # 39;名字# 39;& # 39;价值# 39;);//,获取会话变量(当前,项目有效)   会话::getLocal(& # 39;名字# 39;);

这样,和全局的会话操作就不会冲突,可以用于一些特殊情况的需要。
ThinkPHP支持数据库方式的会话操作,设置SESSION_TYPE的值为DB就可以了,如果使用数据库方式,还要确保设置好SESSION_TABLE的值,并且导入下面的DDL到你的数据库(以MySQL为例子):

CREATE  TABLE “think_session”, (   “id”, int (11), unsigned  NOT  NULL  auto_increment,   “session_id”, varchar (255), NOT 空,   “session_expires”, int (11), NOT 空,   “session_data”,团,   PRIMARY 关键(id)   )

注意,<强> Db会议方式的数据库连接会采用项目的数据库配置信息进行连接。除了数据库方式外,还可以增加其它方式的会话保存机制,例如内存方式,Memcache方式等,我们只要增加相应的过滤器就行了,使用session_set_save_handler方法,具体的方法定义参考Think.Util.Filter下面的FilterSessionDb.class。php文件的实现。
,
制作了一个简单的登陆判断
登陆检测之后赋予会话值,使会话的值为非空即为假的假

$ _SESSION [C (& # 39; USER_AUTH_KEY& # 39;)],=, logInFind美元[& # 39;id # 39;],,

其中[C (& # 39; USER_AUTH_KEY& # 39;)]为ThinkPHP的内置方法和函数类。在未配置config . php文件时默认为空
把美元logInFind [& # 39; id # 39;]取出的帐号值赋予它,默认为关闭页面会话就自动删除消失!
其它页面使用下面格式判断

如果(!收取($ _SESSION [C (& # 39; USER_AUTH_KEY& # 39;)))), {,//isset 是检测变量是否赋值!   ,,这美元→重定向(& # 39;登录# 39;& # 39;登录# 39;);//转到注册页面   }

看完上述内容,你们掌握如何在ThinkPHP中对会话进行操作的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

如何在ThinkPHP中对会话进行操作