我正在制作一个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.
}