首页 新闻 会员 周边 捐助

为什么我设置ini_set("session.gc_maxlifetime",1);无效了?

0
悬赏园豆:5 [待解决问题]
<?
    ini_set("session.gc_maxlifetime",1);
    session_start();
    $_SESSION["name"] = "darkblue";
?>

我设置了ini_set("session.gc_maxlifetime",1);  session 有效期是1分钟.
我一分钟后再访问同文件夹下的test.php  怎么还能获取到$_SESSION["name"] 的 值啊?应该是空值吧?
过了2小时还是可以获取到.
还需要设置什么吗?

<?
    session_start();
    echo $_SESSION["name"];
?>

这是我test.php的代码

深蓝色梦想的主页 深蓝色梦想 | 初学一级 | 园豆:6
提问于:2014-05-17 01:25
< >
分享
所有回答(2)
0

官方手册http://www.php.net/manual/en/session.configuration.php#ini.session.gc-divisor

你需要检查一下 session.gc_probabilitysession.gc_divisor 的值

<?php
ini_set("session.gc_maxlifetime", 10); //单位是秒,我测试时用的是10s

//ini_set("session.gc_probability", 1);
session_start();
$_SESSION["name"] = "darkbulue";

//输出相关信息
echo 'session.gc_maxlifetime<br />';
echo ini_get('session.gc_maxlifetime').PHP_EOL;
echo '<br />';
echo 'session.gc_probability<br />';
echo ini_get('session.gc_probability').PHP_EOL;
echo '<br />';
echo 'session.gc_divisor<br />';
echo ini_get('session.gc_divisor').PHP_EOL;
echo '<br />';
艾莫明 | 园豆:565 (小虾三级) | 2014-06-11 18:33
0

因为 php 的 GC 还需要依靠 session.gc_probability / session.gc_divisor 来决定是否启动,你把 session.gc_probability / session.gc_divisor 的值设为 1 的话,就可以了,不过性能会很差的。

sqrtcat | 园豆:202 (菜鸟二级) | 2019-04-29 19:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册