TP的sessionDB 扩展驱动

tp提供了sessionDB的扩展驱动。发现以下问题
1 读取session会调用sessionDB的write方法
读取$_SESSION['abc']
首先会调用ThinkPHP\Common\functions.php 的session函数,传递name是空数组,value是""的参数。
因此会执行sessionDB中的write方法。
例如以下代码


$mid = $_SESSION['ed_memberinfo']['memberID'];
Log::write("get session");
		echo $mid;


输出

[ 2014-12-08T10:51:43+08:00 ] ERR: use session function 1
[ 2014-12-08T10:51:43+08:00 ] ERR:  use sessionDB in session function 
[ 2014-12-08T10:51:43+08:00 ] ERR: []
[ 2014-12-08T10:51:43+08:00 ] ERR: ""
[ 2014-12-08T10:51:43+08:00 ] ERR: get session
[ 2014-12-08T10:51:43+08:00 ] ERR: sess data: redirect_url|s:0:"";stepOneUrl|s:54:"http://xxx";cart|a:3:{s:4:"plan";i:27;s:9:"gift_type";a:1:{i:0;s:1:"8";}s:17:"subscription_type";i:1;}from_issue|i:0;reg_redirect_url|s:54:"http://devgz.edigest.com.hk/Subscription/magazine_form";ed_memberinfo|a:4:{s:8:"memberID";i:2816;s:4:"name";s:8:"terry wu";s:11:"accessToken";s:66:"6342nPQ29pure+12fZ1GBbvgQUeCtO6hxGk3Rlc8rQe/jKXAUZVcjrP1sd6aMb/Q4Q";s:4:"type";i:1;}is_remember|i:0;verify|s:32:"6de8519b6deaea88169bb53116ff48a2";



因此若同时存在读取session和set session的行为,则可能set session被get session覆盖。导致set session失效。

因此,在使用sessionDB的时候一定要特别注意session的读写顺序。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值