Codeigniter的sess_time_to_update如何工作

时间:2012-12-19 04:40:32

标签: codeigniter

基于以下问题/答案 CodeIgniter session class not working in Chrome

我遇到的问题是,人们无法从远离美国服务器的其他国家/地区登录我的网站。在线搜索之后,我偶然发现了一个建议,该建议描述了问题是如何根据服务器时区和用户时区之间的差异而定的。因此,通过扩展session_expiration,我设法解决了问题,人们可以成功登录。

我的问题是sess_time_to_update是否会创建一个新的时间戳,并且它会注销用户,因为新的时间戳位于错误的时区?我是否必须使新的sess_time_to_update超过17个小时,以便涵盖最广泛的时区,如我所链接的问题中所述。是否有其他方法可以根据用户的本地时间在用户的浏览器中存储会话(不要求他们在配置文件和其他类型的用户不友好方案中选择时区)。我希望有一个2小时的默认会话到期时间+ 800秒。更新时间。我没有使用数据库存储会话,我宁愿不使用它。

1 个答案:

答案 0 :(得分:13)

sess_time_to_update设置是会话详细信息(例如上次活动)的更新频率。默认值为每5分钟(300秒),将生成一个新的会话ID。这将根据sess_expiration设置重置到期日期。

我建议将sess_time_to_update保持在默认值(或更低),因为这会使用户会话保持更长时间,因为会话到期将继续重置。唯一可能需要保持高位的设置是sess_expiration,除非您可以确定用户时区。

您可以通过多种方式尝试确定用户时区。一个是Javascript(示例:Client Side Timezone Offsetting),或者您可以尝试使用PHP's GEOIP方法。

相关问题