PHP会话变量在会话超时后仍然存在



我正在制作一个web应用程序,并使用会话来保持登录用户数据。i我设置了两个变量$_SESSION["loged_in"]和$_SESSION["user_id"]来知道用户是否连接。但是当会话达到超时时,变量仍然存在,这扭曲了我的逻辑。

您确定会话已达到超时时间吗?

根据你的问题,如果会话仍然存在,我认为会话还没有达到超时。会话有一生。在名为php.ini

的文件中可以看到会话生存期

在该文件中,您可以在var session.gc_maxlifetime的值中找到会话生存期的长度。您可以按照以下链接中的步骤设置/更改会话生存期如何改变会话超时在PHP?

====== UPDATE ======

根据您的评论,可能是您还没有创建代码来注销如果用户试图加载一个页面时,他们已经不活跃了长

你必须在你所有的。php文件中"创建代码来检查会话时间和创建代码来注销"。

if( $_SESSION['last_activity'] < time()-$_SESSION['expire_time'] ) { 
    header('Location: http://yoursite.com/logout.php');
} 
else{ 
    $_SESSION['last_activity'] = time(); //this was the moment of last activity.
}

相关内容

  • 没有找到相关文章

最新更新