PHP Session重新赋值失败 - session_write_close 小坑记录

场景:

操作1:在接口A对$_SESSION['key']赋值A,即$_SESSION['key']=A;

操作2:在接口B对$_SESSION['key']赋值B,即$_SESSION['key']=B,同时输出$_SESSION['key']的值,结果为B;

操作3:在接口C取出 $_SESSION['key'] 的值,结果为A;

为什么呢?为什么呢?

作者百思不得其解。。。

以为是什么设置有问题导致的,上网找了一大堆资料,结果没用。

然后再几个小时后,发现框架里有个坑。。。

即:在操作1和操作2之间,有段检测入口的程序代码,在检测到接口不是A是,就关闭了session的写功能,即调用了函数

session_write_clode();

这段代码只有1行,且在文件前面不起眼的地方,于是乎作者忽略了。。

原来 session_write_close() 应该是为了防止加载session阻塞了页面或者是出于安全考虑防止session被非法修改,所以就关闭了session的写入功能,但可以读取。。。

好吧,就是这个session_write_close()导致的。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值