【问题标题】:Why does Joomla or #__session table delete my "session expired" entry without me refreshing the html page?为什么 Joomla 或 #__session 表会在我不刷新 html 页面的情况下删除我的“会话过期”条目?
【发布时间】:2015-11-18 12:38:27
【问题描述】:

我有 3 个使用相同 MySQL 数据库的 Joomla 1.5 应用程序。这意味着它们都使用相同的 #__session 表。

目前我在“会话生命周期”方面遇到了一些问题,它似乎设置为 15 分钟。我知道从“全局配置”中您可以将其设置为更长的时间,我已将其设置为 90 分钟。从那时起,它有时有效,有时无效。

我试图调查为什么会发生这种情况(我仍然不知道为什么),所以我遇到了另一件我不明白的事情,这就是我的问题所在。

当我登录应用程序的管理员部分时,我在 #__session 表中看到了新的会话条目。此条目有一个时间戳。我更改了该时间戳,以便用户会话过期(logged_in_timestamp - 90 分钟 = logged_out_timestamp)。我又等了大约 3-4 分钟,然后刷新的不是 HTML 页面,而是 #__session 表中的数据,我看到我使用当前用户名的条目被删除了。

为什么 Joomla 或 #__session 表在我没有刷新 html 页面的情况下删除了我的“会话过期”条目?

我想如果我找到了这个问题的答案,我就会知道为什么有时需要 90 分钟才能注销,而为什么有时需要 15 分钟才能注销。

【问题讨论】:

    标签: php mysql session joomla joomla1.5


    【解决方案1】:

    您不必自己刷新页面 - 任何对 Joomla 网站的访问都会触发一个删除旧会话的小脚本。

    【讨论】:

    • 你能告诉我这个脚本在哪里吗?我在哪里可以找到它?我想看代码。
    • 我似乎遇到了 $app->logout() 将我带到登录页面,然后删除我的会话的问题,因此登录尝试将失败。我需要找到这个脚本,或者想办法在会话被清除后退出。
    • 它在libraries/joomla/session/storage/database.php - 函数是destroygc - 来自这篇文章(itoctopus.com/… - 文章提到了与#__session 表直接交互的所有地方Joomla 网站)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    相关资源
    最近更新 更多