2014-01-31 46 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(); 
} 
相關問題