ini_set('session.use_cookies','1');
ini_set('session.gc_divisor','1');
ini_set('session.cookie_path', '/');
ini_set('session.cookie_lifetime','2592000');
ini_set('session.gc_maxlifetime','2592000');

$lifetime = 60*60*24*30; //單位秒,3600秒=1小時
session_save_path($_SERVER['DOCUMENT_ROOT'].'/sessions');//主機需將session轉移到我們自己設定的目錄儲存
if (isset($_COOKIE['PHPSESSID'])) {
    session_id($_COOKIE['PHPSESSID']);// 重置該頁面的ssesion_id
    session_set_cookie_params($lifetime);
    @session_start();
}else{
    @session_start();
    setcookie(session_name(), session_id(), time() + $lifetime);
}

備註:

1.在Debian中,PHP的session.gc_probability被設成0

2.Debian每24分鐘(原生php的session過期時間)清除一次session,因此我們怎麼設定過期時間都是無效的

3.解決方法是重新打開php的session垃圾回收,並將session轉移到自己設定的目錄儲存,以避開Debian的自動清除

創作者介紹
創作者 摸魚一群人 的頭像
moyunhost

摸魚一群人

moyunhost 發表在 痞客邦 留言(0) 人氣( 2 )