phpsession超時
❶ 如何嚴格設置php中session過期時間
可以在PHP中,設置php.ini,找到session.gc_maxlifetime
=
1440
#(PHP5默認24分鍾)
這里你可以隨便設置一下過期時間.但是有人說設置以後,好象不起作用!
其實不是不起作用,而是因為系統默認:
session.gc_probability
=
1
session.gc_divisor
=
1000
以上設置的
1/1000就是session
1000次才有一次被回收。
只要你的訪問量大了,那就能達到回收的效果.
或者你也可以設置一下session.gc_divisor
的值,
比如:session.gc_divisor
=
1,這樣就能明顯的看到SESSION過期的效果了.
❷ 如何嚴格設置php中session過期時間
第一種方法即設置php.ini配置文件,設置session.gc_maxlifetime和session.cookie_lifetime節
點屬性值,當然也可以使用ini_set函數改變當前上下文環境的屬性值:
ini_set('session.gc_maxlifetime', "3600"); // 秒
ini_set("session.cookie_lifetime","3600"); // 秒
第二種方法即設置Session時間戳,比如下面的辦法。
在登錄成功時設置時間戳為當前時間推後1小時,$_SESSION['expiretime'] = time() + 3600;。在
檢查用戶登錄情況使用如下代碼:
if(isset($_SESSION['expiretime'])) {
if($_SESSION['expiretime'] < time()) {
unset($_SESSION['expiretime']);
header('Location: logout.php?TIMEOUT'); // 登出
exit(0);
} else {
$_SESSION['expiretime'] = time() + 3600; // 刷新時間戳
}
}
兩種方法可以結合使用。