您的位置:首页 > 其它

设置session的生存时间

2015-02-14 15:16 204 查看
1、最有效的方法 修改php.ini中

#session的超时时间
session.gc_maxlifetime = 1440


2、通过php去修改这个值

$Lifetime = 3600;
$Seperator = (strstr(strtoupper(substr(PHP_OS, 0, 3)), "WIN")) ? "\\" : "/";
$DirectoryPath = dirname(__FILE__) . "{$Seperator}SessionData";
is_dir($DirectoryPath) or mkdir($DirectoryPath, 0777);

if (ini_get("session.use_trans_sid") == true) {
ini_set("url_rewriter.tags", "");
ini_set("session.use_trans_sid", false);

}

ini_set("session.gc_maxlifetime", $Lifetime);
ini_set("session.gc_divisor", "1");
ini_set("session.gc_probability", "1");
ini_set("session.cookie_lifetime", "0");
ini_set("session.save_path", $DirectoryPath);
session_start();


3、采用增加cookie的时间,变相的增加session的时间

/**
*
*下面只是设置了保存sessionid的那个时间,这样的结果是关闭浏览器后session仍可以用
*实际并没有改变session的生存时间
*
*/

//只会在用户第一次访问的时候设置保存sessionid的那个cookie的过期时间
$lifetime=600;
session_set_cookie_params($lifetime);#注意到放到start的前面
session_start();

//每次都设置保存sessionid的那个cookie的过期时间
$lifetime=600;
session_start();
setcookie(session_name(),session_id(),time()+$lifetime);


//同上,每次都会设置
$lifetime=86400;
session_set_cookie_params($lifetime);
session_start();
session_regenerate_id(true);


参考手册中 session_set_cookie_params 函数 comment
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: