一些用户在我的网站(PHP)中丢失了会话信息。我怎样才能防止这种情况?

一些用户在我的网站(PHP)中丢失了会话信息。我怎样才能防止这种情况?,php,session,cookies,login,Php,Session,Cookies,Login,在我的网站上,一些用户抱怨登录时出现问题 他们的浏览器通常看不到会话信息,无法理解用户是否已登录,其行为就像从未登录一样。但在一些刷新之后,浏览器会看到会话信息并显示用户正常登录。同样,如果用户尝试执行某些操作(如编写消息),浏览器会再次释放会话信息并重定向到登录页面。情况仍然如此 用户计算机的浏览器安全选项、cookie选项都与我的相同 我从来没有遇到过这样的问题,但他们确实遇到了 我怎样才能解决这个问题,实际上我怎样才能看到,理解这个问题 谢谢 您的服务器负载平衡吗? 我最近遇到了这个问题,

在我的网站上,一些用户抱怨登录时出现问题

他们的浏览器通常看不到会话信息,无法理解用户是否已登录,其行为就像从未登录一样。但在一些刷新之后,浏览器会看到会话信息并显示用户正常登录。同样,如果用户尝试执行某些操作(如编写消息),浏览器会再次释放会话信息并重定向到登录页面。情况仍然如此

用户计算机的浏览器安全选项、cookie选项都与我的相同

我从来没有遇到过这样的问题,但他们确实遇到了

我怎样才能解决这个问题,实际上我怎样才能看到,理解这个问题


谢谢

您的服务器负载平衡吗? 我最近遇到了这个问题,因为我们的一个旧站点的用户暂时“丢失”了他们的登录状态


我们发现loadbalancer没有正确地实现粘性会话,因此人们在服务器之间跳来跳去,因为该站点使用的是服务器会话,而不是数据库会话,人们实际上在一台服务器上注销,但在另一台服务器上登录…

因为您似乎无法重现问题,进入他们的机器可能不是一个选项,你可以让他们运行(ie),(firefox)等,然后向你发送日志

正如gavtaylor所建议的,我会怀疑负载平衡器、代理或其他方面。

通常的做法是:

  • 试着重现这个问题
  • 如果失败,请添加更多日志记录
  • 如果仍然不清楚,则调试代码
假设第一个失败,那么您可能希望启动


从表面上看,这听起来像是一个缓存问题。

只是一个猜测,但超时怎么办?没有代码,我们只能猜测。您可能需要在受影响的系统上进行一些调试。也许您的会话系统对客户端的IP更改很敏感?超时时间足够长,大多数用户看不到任何问题。只是一些用户…Pekka,用户在其他城市,我尝试在电话上进行调试,但几乎不可能:)您提供什么调试技术?我怎么能遵循客户端的IP变化?@ TEFOTE,你可以考虑使用远程控制工具,如VNC登录到他们的桌面上,或试图复制用户的环境尽可能接近- OS,浏览器,类型的互联网连接…如果要更改IP,您必须查看代码,看看如果IP更改,会话是否会中断。感谢您更正此问题。它不允许我(正确地)添加这两个链接,因为它给了我一些关于垃圾邮件可能性的错误(我想是因为我刚刚开始在这里提供一些答案)/shrugSticky会话很糟糕-它们完全破坏了HA使用负载平衡器的理由