Home >php教程 >php手册 >php下session过期时间的设置方法

php下session过期时间的设置方法

WBOY
WBOYOriginal
2016-05-25 16:48:09964browse

如果客户端没有禁用 Cookie,则 Cookie 在启动 Session 会话的时候扮演的是存储 Session ID 和 Session 生存期的角色。我们来手动设置 Session 的生存期:

例子,利用cooikes

<?php
session_start();
// 保存一天
$lifeTime = 24 * 3600;
setcookie(session_name() , session_id() , time() + $lifeTime, "/");
?>

PHP5 Session还提供了一个函数 session_set_cookie_params(); 来设置PHP5 Session的生存期的,该函数必须在 session_start() 函数调用之前调用:

<?php
// 保存一天
$lifeTime = 24 * 3600;
session_set_cookie_params($lifeTime);
session_start();
?>

php中还有一个ini_set可以设置session.gc_maxlifetime来设定Session的生存周期。例如:

<?php
ini_set(&#39;session.gc_maxlifetime&#39;, 3600); //设置时间
ini_get(&#39;session.gc_maxlifetime&#39;); //得到ini中设定值
?>

下面提供一个别人封装好的函数,但是我没有测试过,仅供参考:

<?php
function start_session($expire = 0) {
    if ($expire == 0) {
        $expire = ini_get(&#39;session.gc_maxlifetime&#39;);
    } else {
        ini_set(&#39;session.gc_maxlifetime&#39;, $expire);
    }
    if (empty($_COOKIE[&#39;PHPSESSID&#39;])) {
        session_set_cookie_params($expire);
        session_start();
    } else {
        session_start();
        setcookie(&#39;PHPSESSID&#39;, session_id() , time() + $expire);
    }
}
?>

使用方法:

加入start_session(600);//600秒以后过期。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn