我正在制作一个webapp并使用会话来保持用户数据。我设置2个变量$ _SESSION [“loged_in”]和$ _SESSION [“user_id”]来知道用户是否已连接。但是当会话达到超时时,变量仍然存在,这会扭曲我的逻辑。我该怎么解决?
答案 0 :(得分:1)
你确定会话已达到超时吗?
根据您的问题,如果会话仍然存在,我认为会话尚未达到超时。会话有一生。会话生存期可以在名为php.ini
的文件中看到在该文件中,您可以找到var session.gc_maxlifetime值的会话生存期。 您可以按照以下链接中的步骤设置/更改会话生存期 How to change the session timeout in PHP?
======更新======
根据您的评论,可能您还没有创建代码来注销 用户,如果他们尝试在页面处于非活动状态时加载页面 长
你必须在你拥有的每个.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.
}