php8、iis6、http
1、生成一个token,存储在服务器session中,提交token给前端页面;
2、前端提交表单时同时提交该token,结果服务器中的session为空;
研究一天,时好时坏,在不同浏览器中可能好可能坏,正当崩溃之时,似乎一切都好了但很快又挂了。。。
前端页面cookie中存储该session的id,但提交给后端时,该id对应session消失或出错;
后又推测是当时在进行安全演防,session一超过数量就被清理,于是cookie对应的session就不见了,当然,这个推测是极其不靠谱的,妥妥的失败。。。
将php升级到最新版本,依旧不对。。。蓸
最后,tmd,是这句出错了
session_set_cookie_params(0,NULL,NULL,TRUE);
改成这样就没问题了。具体参数参考官方:session_set_cookie_params
session_set_cookie_params(0,NULL,NULL,NULL,TRUE);
参考:
php 中session_set_cookie_params 和 setcookie 函数的区别与用法
php8、iis6
因某些原因session存储目录或文件上传的缓存目录中缓存文件数超过2的16次方-1,即25535,清空即可。
一般是写一个批处理文件,用系统自带的时间计划,定时清理。
内容如下:
echo 正在清理文件,请稍等......
del /f /s /q D:\temp\phpSession\*
del /f /s /q D:\temp\phpUpload\*