会话结束时运行脚本

时间:2012-03-05 18:27:34

标签: php session garbage-collection cron

我正在研究如何在用户会话结束时运行脚本或函数,以便我可以删除可能需要的临时文件。

我一直在搜索SO找到这个问题的解决方案并且遇到了this但是我发现我有点超出我的深度而且我发现有关GC的PHP文档令人困惑(以及我的内容)从文档中了解 - 这不是我真正需要的。)

我查看session_set_save_handler上的页面并提出了这个问题:

session_set_save_handler( '', '', '', '', 'deleteDocs');
function deleteDocs()
{
    rmdir('user/' . rawurlencode($_SESSION['data']['user']['details']['email']) . '/temp');
}

但是,此功能根本不运行。坦率地说,有了这个,我觉得我不知道自己在做什么。

我尝试使用GC并查看了session.gc_divisorsession.gc_probability,但无论如何我都无法编辑php.ini。

能否实现这一目标。我应该使用cron作业 - 如果是,我该如何检查会话是否已完成?

1 个答案:

答案 0 :(得分:2)

  

我应该使用cron作业 - 如果是,我该如何检查会话是否已完成?

是。您可以根据文件的上次修改时间执行此操作(在您的情况下,文件是目录)。如果它早于最大会话年龄,请删除目录。

您可以使用findWikipedia命令。

您在PHP文件夹中找到了一个示例脚本,另请参阅Deleting old session files from custom set session folder?cleanup php session files