<p>1、最有效的方法 修改php.ini中</p><p>#session的超时时间</p><p>session.gc_maxlifetime = 1440</p><p></p><p>2、通过php去修改这个值</p><p>$Lifetime = 3600;</p><p>$Seperator = (strstr(strtoupper(substr(PHP_OS, 0, 3)), &quot;WIN&quot;)) ? &quot;\\&quot; : &quot;/&quot;;</p><p>$DirectoryPath = dirname(__FILE__) . &quot;{$Seperator}SessionData&quot;;</p><p>is_dir($DirectoryPath) or mkdir($DirectoryPath, 0777);</p><p></p><p>if (ini_get(&quot;session.use_trans_sid&quot;) == true) {</p><p> ini_set(&quot;url_rewriter.tags&quot;, &quot;&quot;);</p><p> ini_set(&quot;session.use_trans_sid&quot;, false);</p><p></p><p>}</p><p></p><p>ini_set(&quot;session.gc_maxlifetime&quot;, $Lifetime);</p><p>ini_set(&quot;session.gc_divisor&quot;, &quot;1&quot;);</p><p>ini_set(&quot;session.gc_probability&quot;, &quot;1&quot;);</p><p>ini_set(&quot;session.cookie_lifetime&quot;, &quot;0&quot;);</p><p>ini_set(&quot;session.save_path&quot;, $DirectoryPath);</p><p>session_start();</p><p></p><p></p><p>3、采用增加cookie的时间,变相的增加session的时间</p><p>/**</p><p>*</p><p>*下面只是设置了保存sessionid的那个时间,这样的结果是关闭浏览器后session仍可以用</p><p>*实际并没有改变session的生存时间</p><p>*</p><p>*/</p><p>//只会在用户第一次访问的时候设置保存sessionid的那个cookie的过期时间</p><p>$lifetime=600;</p><p>session_set_cookie_params($lifetime);#注意到放到start的前面</p><p>session_start();</p><p>//每次都设置保存sessionid的那个cookie的过期时间</p><p>$lifetime=600;</p><p>session_start();</p><p>setcookie(session_name(),session_id(),time()+$lifetime);</p><p></p><p>//同上,每次都会设置</p><p>$lifetime=86400;</p><p>session_set_cookie_params($lifetime);</p><p>session_start();</p><p>session_regenerate_id(true);</p><p></p><p>参考手册中 session_set_cookie_params 函数 comment</p>
返回顶部 留言