2013-03-25 125 views
0

我已经设置了一个使用会话的PHP5脚本。 开始会话很顺利,它也会创建一个cookie(如预期的那样)。PHP:关闭浏览器后保持旧会话ID

然而,关闭浏览器(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 

会议文件做net被删除/ var/lib/php5 在session_destroy()之后,这些文件将被删除。

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

我刚刚阅读了关于firefox的一个奇怪的'功能',它为您存储cookie,就像您从未关闭浏览器一样。

Firefox session cookies

我想这可能只是原因所在。 因为我不想要这个,我需要找到解决办法。

你能告诉我这个吗?

回答

0

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

+0

嘿谢谢,我刚刚编辑了我自己的问题。 我刚刚阅读了关于firefox的一个奇怪的'特性',它为您存储cookie,就像您从未关闭浏览器一样。 http://stackoverflow.com/questions/777767/firefox-session-cookies 我认为这可能只是原因。因为我不想要这个,所以我需要找到解决办法。 你能告诉我这个吗? – BonifatiusK 2013-03-25 09:52:39

相关问题