2013-03-25 103 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

相關問題