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

心不动则不痛 提交于 2020-03-05 01:37:09

场景:

操作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()导致的。。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!