这可能很容易做到,但我无法弄明白。
基本上,我有一个用python和php编写的松散的Web应用程序。 python代码使用PHP会话(在用户登录时从PHP应用程序生成)来检查用户是否已登录/有权访问给定的python资源。
我的问题是:强制所有活动会话超时的最简单方法是什么。我想这样做是为了调试,测试python代码。我尝试更改session.max_lifetime PHP变量,但仍不保证会话已结束并被删除。
我尝试删除该文件,但这似乎会导致问题(当我刷新php页面时,错误会显示在我的apache日志中,并且不会快速重新加载)
有什么想法吗?
答案 0 :(得分:1)
我知道没有一种干净地结束所有客户的所有会话的核心方式。
要结束所有会话,我会在应用内的指定位置创建一个具有已定义名称(例如end.txt
)的文件。
您的引导程序文件(或初始化会话的任何位置)将在启动会话后立即检查该文件是否存在;如果是,请执行session_destroy()
并取消设置所有Cookie。
使用此方法,您必须手动删除end.txt
文件。
答案 1 :(得分:1)
刚刚在另一个问题上找到了这个: cleanup php session files
您可以尝试使用ini_set()函数将gc_maxlifetime设置为较低的值,例如0或1(我没有尝试过,但这似乎是合理的)。
http://ar.php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime
要尝试的另一件事是删除session.save_path文件夹中的所有文件。当然,这需要适当的文件权限,但它可能是更好的选择。
答案 2 :(得分:0)
删除服务器上的会话文件不会删除客户端的sesison cookie。您可以删除会“杀死”会话的会话cookie。或者您可以简单地使用session_unset()
来销毁会话服务器端。
您可能还需要使用session_destroy()
并取消设置会话cookie(为此,请查看session_unset注释以了解具体方法)。