【发布时间】:2013-02-23 05:03:04
【问题描述】:
在 PHP 中,我怎样才能使 cookie 在会话存在时持续存在?
场景:
网站由页面组成,有些是执行的 PHP 脚本,例如 login 和 view cart。有些是 Apache 从缓存中读取的静态 html 文件,并且不会在这些页面上调用 PHP。
在任何运行 PHP 的页面上都会生成和维护 sessionID。无论用户是否实际登录,会话都存在。会话存储用户是否登录。浏览器只有一个 sessionID cookie。
缓存页面应显示log in 或log out 按钮,具体取决于用户是否登录。 PHP 不会在缓存页面上调用,因此无法在此处读取会话值。必须使用一个小的 JavaScript 函数来检查 IsLoggedIn cookie。
问题: 如果用户登录,PHP 可以设置 JavaScript 读取的 cookie。好的。如果用户使用注销按钮明确注销,则 cookie 可能会过期。很好。
但是-如果用户离开计算机,他的会话会在他与 PHP 页面的最后一次交互后过期 x 秒,而他的 cookie 从创建时会过期 y 秒。这可能会导致一个超时。
有没有办法让两者同步,让它们总是一起过期?
【问题讨论】:
标签: php apache session-cookies