关于PHP中保存在服务器中的对应会话的SESSION内容会改变的问题

遇到一个问题,想请教一下各位大佬帮着分析解决一下。

问题如下:

用户在登录时,将用户的一些信息使用例如:$_SESSION['token'],$_SESSION['username']等这样,保存在SESSION文件中,用户在查看一些需要调取数据的页面的时候,ajax会根据$_SESSION['token']去验证一下用户token的有效性。

问题出在,用户在登陆后,停留在当前页面一段时间,比如半小时,再刷新整个页面的时候,或者跳转到其他需要调取数据,验证token的页面的时候,会触发设置的会话超时,请重新登录的弹窗提示。但是我这边并没有设置相关过期时间。

经过监控发现,用户在登录时,保存在对应session文件中的token值改变了,问题来了,用户并没有重新登录,也没有其他人使用该用户去登录,也就是说,登录时生成并保存在数据库中的token并没有改变,但是为何session文件中的token值会变啊?

这就导致了使用$_SESSION['token']去对比数据库的token时候出现不一致,然后才出现弹窗提示。

请问这个session文件中的token值为何会改变啊?能否有前辈指教一下问题出在哪里么?

阅读 1.8k
1 个回答

session 默認有效時間24分鍾

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题