`
flex_莫冲
  • 浏览: 1078174 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

TP的sessionDB 扩展驱动

    博客分类:
  • php
阅读更多
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的读写顺序。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics