0

我使用的是 PHP 5.2,并且我在共享主机上,所以我决定将会话 cookie 存储在我自己的文件夹中,但似乎没有任何垃圾收集。cookie 存储在那里并且永远不会被删除。我怎样才能解决这个问题?我正在使用的代码是

session_save_path('../example.com/sessions/');
ini_set('session.gc_probability', 1);
4

2 回答 2

2

另一部分是session.gc_divisor配置选项。默认值 100 将使您有 1% 的机会(gc_probability / gc_divisor)在任何会话开始时进行垃圾收集。

要强制垃圾收集总是发生,请尝试使用:

ini_set('session.gc_probability', 100);
ini_set('session.gc_divisor', 100);

一旦您确认它们的垃圾收集器确实按预期工作,您应该为这些设置选择合理的值。1 - 10% 没问题。

于 2011-01-15T18:25:14.523 回答
1

您的 session.gc_divisor 设置为什么?如果它是 10000,垃圾收集器启动的概率将非常低。如果它的默认值是 100。那么收集器启动的机会是 100 分之一。多次点击页面,看看它是否清除。

或者将概率设置为 100 或将除数设置为 1。无论哪种方式,它都会每次运行。这有点矫枉过正,但它应该可以帮助您确定它是否有效。然后适当设置。

于 2011-01-15T18:28:32.193 回答