PHP会话Cookie因用户更改IP而失败

PHP会话Cookie因用户更改IP而失败,php,session,cookies,ip-address,Php,Session,Cookies,Ip Address,我有一个小应用程序的登录脚本,它通过存储会话cookie并在每个页面上检查它们来确保用户已登录。 使用该系统的两个用户中的一个一直在随机注销。 这似乎取决于会话cookie,该cookie显示已验证不再存在 经过大量的调查,我发现这个用户唯一不同的地方是他们的IP地址在变化(今天它每小时都在变化(他们在天空中)。 唯一的问题是,IP地址的更改在今天早上发生了5次,用户只注销过一次 有没有人有过类似的问题 会话cookie是否以某种方式与IP地址关联 非常感谢任何帮助或链接 谢谢 默认情况下,PH

我有一个小应用程序的登录脚本,它通过存储会话cookie并在每个页面上检查它们来确保用户已登录。 使用该系统的两个用户中的一个一直在随机注销。 这似乎取决于会话cookie,该cookie显示已验证不再存在

经过大量的调查,我发现这个用户唯一不同的地方是他们的IP地址在变化(今天它每小时都在变化(他们在天空中)。 唯一的问题是,IP地址的更改在今天早上发生了5次,用户只注销过一次

有没有人有过类似的问题

会话cookie是否以某种方式与IP地址关联

非常感谢任何帮助或链接

谢谢


默认情况下,PHP会话不考虑IP更改。它只基于cookie值

因此,当用户更改IP地址时,您的web应用程序中可能存在使会话无效的自定义代码

会话cookie是否以某种方式与IP地址关联

不会。只要浏览器连接到相同的IP名称服务器端,客户端地址是否更改或通过不同的代理就无关紧要

更有可能的是,某些内容被缓存到了不应该缓存的地方。(假设您没有对IP地址进行验证)

您是否已将Web服务器配置为根据请求/客户端/用户代理记录会话ID?(即在访问日志中)


C.

我在许多网站上都遇到了同样的问题。我们有2个Internet连接,根据负载自动切换(通过这样做我们的IP更改),从而导致cooxies/sessions问题。似乎symcbean在下面说IP更改服务器端是一个问题。希望你能把它整理好。谢谢。我的代码中没有IP检查。不过,我会根据用户活动记录IP地址,但没有对此进行说明。我可能会写一些会议的内容。会话cookie是否得到缓存?我本以为不是,但我经常错了。然而,我正在将系统时间存储在会话变量中以用于超时,在阅读了您的帖子后,我想知道这是否是从缓存位置获取的。这感觉像是一个轻量级的解决方案,我想我可能会在数据库中存储一些东西,以使会话更加健壮。对我来说,越来越多的证据表明IPs是一个问题……我只有一组2个用户要继续。一个人的IP是固定的(一天内没有变化),其他人大约每1.5小时左右随机变化一次。问题出在IP不断变化的用户身上。但是,她在上周五12:36给我发了邮件,说她刚刚注销,我可以清楚地看到她的IP地址在12:10到12:54之间保持不变,所以这里似乎不是IP的错。但她可能延迟了邮寄。我将加入一些数据收集位,试图获得更多的线索。添加了一些跟踪代码后,用户cookie会话似乎消失了。下一步是进入她的机器并查看Norton whcih可能会干扰会话。有时用户重新登录时会恢复会话cookie ID,但其中的会话变量未设置。其他时候,当他们重新登录时,他们会有一个新的会话id。我被困在这个id上。如果这是某种防火墙/cookie安全问题,它肯定会删除cookie。问题似乎是相关用户正在使用浏览器刷新按钮。我创建了一个自定义刷新按钮,允许它以受控方式进行刷新,并且不再有注销。总之,我认为在使用浏览器刷新时FF和IE(我让用户尝试IE)会导致一些问题,导致会话丢失。