基于以下问题/答案
CodeIgniter session class not working in Chrome
我遇到的问题是,人们无法从远离美国服务器的另一个国家/地区登录我的网站。在网上搜索后,我偶然发现了一个建议,该建议描述了问题是如何基于服务器时区和用户时区之间的差异的。因此,通过扩展 session_expiration 我设法解决了这个问题,人们能够成功登录。
我的问题是 sess_time_to_update 是否会创建一个新的时间戳并且它会因为新的时间戳在错误的时区而注销用户?我是否必须使新的 sess_time_to_update 超过 17 个小时,以便它涵盖最广泛的时区,如我链接的问题中所述。是否有其他方式根据用户的本地时间在用户的浏览器中存储 session (不要求他们在配置文件中选择时区和其他类型的用户不友好方案)。我想要一个 2 小时的默认 session 过期时间 + 800 秒。更新时间。我没有使用数据库来存储 session ,我宁愿不使用它。
最佳答案
sess_time_to_update
设置是 session 详细信息(例如上次事件)的更新频率。默认值为每 5 分钟(300 秒),并且会生成一个新的 session ID。这将根据 sess_expiration
重置到期日期。环境。
我建议保留 sess_time_to_update
默认(或更低),因为这将使用户 session 保持更长时间,因为 session 到期将不断重置。可能需要保持高位的唯一设置是 sess_expiration
,除非您可以确定用户时区。
有几种方法可以尝试确定用户时区。一种是 Javascript(例如: Client Side Timezone Offsetting )或者您可以尝试使用 PHP's GEOIP方法。
关于codeigniter - Codeigniter 的 sess_time_to_update 如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13945603/