我在我的loginsite上使用此代码:
if(isset($_POST['submitted']))
{
ini_set('session.gc_maxlifetime', 60);
session_set_cookie_params(60);
session_start();
if($fgmembersite->Login())
{
$fgmembersite->RedirectToURL("loginhome.php");
}
}
因此,我们的想法是,当用户登录并按下提交按钮时,maxlifetime将按特定时间倒计时(此处为测试目的60秒),然后删除登录后任何站点上的会话。我在loginhome.php上尝试过,60秒后我被踢了,不得不再次登录(所以它在这里工作得很好)。但如果我继续下去,在登录区域的其他页面上,它将不再起作用。我还试图将代码复制到每个页面,以便计时器对每个页面分开工作,这是行不通的。 有人能帮助我吗?
此致
答案 0 :(得分:0)
即使您将其设置为60秒,也不会在每次请求时使其过期。每次请求页面时,PHP都会掷骰子,以确定该请求是否会使会话过期。如果您处于开发环境中,则可以使“骰子”只有一个数字。也就是说,如果你在php.ini中设置以下设置,它将在每个请求上过期并进行垃圾收集:
session.gc_probability "1"
session.gc_divisor "1"