PHP:关闭浏览器后继续获取旧的会话ID

时间:2013-03-25 09:38:07

标签: session-cookies php

我已经设置了一个使用会话的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中删除net 在session_destroy()之后,文件将被删除。

但是,再次使用脚本(启动会话)后,我将获得旧的会话ID。 上个星期五我从我的电脑退出,现在我回来了,我仍然得到这个旧的会话ID。 关闭浏览器后我真的想要一个新的会话ID(命令Q)

我刚刚读到了一个firefox的“功能”,它为你存储了cookie,好像你从未关闭浏览器一样。

Firefox session cookies

我认为这可能就是原因所在。 因为我不想要这个,我需要找到一个解决方法。

你能告诉我这个吗?

1 个答案:

答案 0 :(得分:0)

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

的示例