2014-01-31 26 views
1

我需要在用户空闲时长达10分钟还怎么找到用户的最后一次活动的时间,以摧毁了会议,会话自动终止,如果用户在空闲

if ($_SESSION['last_activity'] > 600) 
{ 
session_unset(); 
session_destroy(); 
} 

这是正确的方式。 。

+0

你并不需要调用'session_destroy()'。如果你调用'session_destroy()',那么你需要再次调用'session_start()'。另外,要注意,如果你在会话中保留**任何其他**,那么''session_unset()'也会丢失' – Styphon

+0

http://stackoverflow.com/questions/520237/how-do-i- expire-a-php-session-after-30-minutes?lq = 1 –

+0

可能重复http://stackoverflow.com/questions/9049890/php-destroy-session-if-not-any-action-in-10-分钟 – Pwner

回答

2

使用session.gc_maxlifetime

Set session.gc_maxlifetime = 600 in phi.ini 

ini_set('session.gc_maxlifetime',600); // in your script 
0
//on pageload 
session_start(); 

$idletime=60;//after 60 seconds the user gets logged out 

if (time()-$_SESSION['timestamp']>$idletime){ 
    session_destroy(); 
    session_unset(); 
}else{ 
    $_SESSION['timestamp']=time(); 
} 

//on session creation 
$_SESSION['timestamp']=time(); 
0

检查活动重置时间前:

if (isset($_SESSION['last_activity']) && $_SESSION['last_activity'] > 600){ 
    session_unset(); 
    session_destroy(); 
}else{ 
    $_SESSION['last_activity'] = time(); 
} 
相关问题