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的自動清除
請先 登入 以發表留言。