0

我已经设置了一个使用会话的 PHP5 脚本。启动会话很顺利,它还创建了一个 cookie(如预期的那样)。

然而,在关闭浏览器(Mac OSX Mountain Lion 上的 Firefox 19.0.2)并打开浏览器后,会话 ID 保持不变。即使过了几天。然而,当 session.cookie_lifetime 设置为 0

在 PHP 中,我使用它来启动会话:

//set cookie params: lifetime, path, domain, https, http-only
session_set_cookie_params(0, "/", null, false, true);

session_name('MySession');

//start session
session_start();

这是我的 PHP.ini

session.use_cookies = 1
session.use_only_cookies = 1
session.cookie_httponly = 1
session.cookie_lifetime = 0
session.cookie_path = /
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.hash_function = 1
session.hash_bits_per_character = 6
session.save_path = /var/lib/php5
session.name = PHPSESSID

会话文件确实会在 /var/lib/php5 中被删除。在 session_destroy() 之后,文件将被删除。

但是,再次使用脚本(开始会话)后,我将获得旧的会话 ID。上周五我从我的电脑上注销了,现在我回来了,我仍然得到这个旧的会话 ID。我真的很想在关闭浏览器后有一个新的会话 ID(命令 Q)

我刚刚读到了 Firefox 的一个令人讨厌的“功能”,它为您存储 cookie,就好像您从未关闭过浏览器一样。

Firefox 会话 cookie

我想这可能只是原因。因为我不希望这样,所以我需要找到解决方法。

你能给我建议吗?

4

1 回答 1

0

您必须在函数中设置 cookie 生命周期,否则它将保留在那里。您必须在那里提供一些过期时间。以下是贡献的一些示例http://php.net/manual/en/function.session-set-cookie-params.php

于 2013-03-25T09:46:14.420 回答