【发布时间】:2013-10-28 10:10:15
【问题描述】:
我有一个使用 PHP 框架 Yii 构建的网站和一个用于搜索查询的缓存表,每个用户都是唯一的。 我想在用户注销或会话过期后立即清除此缓存。我有每个搜索缓存项的创建日期和时间的条目。
如果用户点击注销,这很容易。我只是清除他们的缓存。但我的问题是,如果他们不点击注销按钮,我怎么知道会话是否已过期?我使用的是标准 Yii 用户模型,会话不是存储在 db 中而是存储在文件中(我猜 PHP 标准会话正在处理这个问题)。
我如何知道给定的 userId 已经缓存了他们的会话已过期的项目?
【问题讨论】:
-
有关如何执行此操作的完整信息,请参阅此链接:stackoverflow.com/questions/520237/…
-
当用户注销时,将会话条目设置为“logged_out”(新列),然后编写一个通过会话条目(标记为“logged_out”)并清除它们的 cron 脚本?
-
查看他们以任何一种方式解释的完整帖子。
-
@mahesh 这不是回答我的问题,我需要知道在 Yii 的具体情况下,如何找出给定 userId 的会话是否已过期,如我的帖子中所述
-
您只能在用户的下一次请求时发现您的会话已过期,或者按照建议使用 cron 作业来完成每次登录。