没有合适的资源?快使用搜索试试~ 我知道了~
在PHP中使用$_SESSION来操作session,而ThinkPHP提供了session的封装函数session()。单单这一个函数就实现了session的增删改查的功能。下面我们分别来看其应用与实现。 该session()函数的定义是在Common/functions.php中定义。 session配置 session($name=”,$value=”)函数有两个参数,$name为数组的时候是对session进行设置。使用如下: $name = array( ‘name'=>'name', ‘path'=>'/tmp/', ‘expire'=>0 ); s
资源详情
资源评论
资源推荐
ThinkPHP中中session函数详解函数详解
在PHP中使用$_SESSION来操作session,而ThinkPHP提供了session的封装函数session()。单单这一个函数就实现了
session的增删改查的功能。下面我们分别来看其应用与实现。
该session()函数的定义是在Common/functions.php中定义。
session配置配置
session($name=”,$value=”)函数有两个参数,$name为数组的时候是对session进行设置。使用如下:
$name = array(
‘name'=>'name',
‘path'=>'/tmp/',
‘expire'=>0
);
session($name);
这些是在开启session之前进行设置的。在ThinkPHP中定义该函数的时候是先判断$name是否为数组,如果为数组的话就说明
是在对session进行设置,然后进入相应的代码执行设置。
其实现代码如下:
if(is_array($name)) { // session初始化 在session_start 之前调用
if(isset($name['prefix'])) C('SESSION_PREFIX',$name['prefix']);
if(C('VAR_SESSION_ID') && isset($_REQUEST[C('VAR_SESSION_ID')])){
session_id($_REQUEST[C('VAR_SESSION_ID')]);
}elseif(isset($name['id'])) {
session_id($name['id']);
}
if('common' != APP_MODE){ // 其它模式可能不支持
ini_set('session.auto_start', 0);
}
if(isset($name['name'])) session_name($name['name']);
if(isset($name['path'])) session_save_path($name['path']);
if(isset($name['domain'])) ini_set('session.cookie_domain', $name['domain']);
if(isset($name['expire'])) {
ini_set('session.gc_maxlifetime', $name['expire']);
ini_set('session.cookie_lifetime', $name['expire']);
}
if(isset($name['use_trans_sid'])) ini_set('session.use_trans_sid',$name['use_trans_sid']?1:0);
if(isset($name['use_cookies'])) ini_set('session.use_cookies', $name['use_cookies']?1:0);
if(isset($name['cache_limiter'])) session_cache_limiter($name['cache_limiter']);
if(isset($name['cache_expire'])) session_cache_expire($name['cache_expire']);
if(isset($name['type'])) C('SESSION_TYPE',$name['type']);
……
}
在ThinkPHP中,对于session的存储系统提供了mysql和memache两种数据库。当然默认情况下是使用文件存储。判断
session存储方式的代码如下:
if(C('SESSION_TYPE')) { // 读取session驱动
$type = C('SESSION_TYPE');
//系统调用mysql驱动程序
$class = strpos($type,'\')? $type : 'Think\Session\Driver\'. ucwords(strtolower($type));
$hander = new $class(); //实例化处理器
//注册处理器
session_set_save_handler(
array(&$hander,"open"),
array(&$hander,"close"),
array(&$hander,"read"),
array(&$hander,"write"),
array(&$hander,"destroy"),
array(&$hander,"gc")
);
}
对于session存储系统的配置是通过配置选项SESSION_TYPE来设置的。
SESSION_TYPE=>’Mysql’ //将session存储在mysql数据库中
设置完成以后如果设置了session自动启动,那系统会自动开启session
weixin_38723516
- 粉丝: 4
- 资源: 982
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0