2012-08-09 71 views
1

我有一個腳本,做這樣的:window.open()URL有www。和餅乾的問題

window.open("http://www.myurl.com","myURL","width=400,height=200"); 

還好,這個工程。我有Cookie設置和會話設置。用戶登錄時只能訪問我的頁面。當我註銷時,這個頁面會引導我登錄window.open(),正如預測的那樣。

當我拿出在window.open()

window.open("http://myurl.com","myURL","width=400,height=200"); 

的cookie和session不適www?即使我已經註銷,我仍然可以進入該頁面。

現在,當我在原始瀏覽器中嘗試myurl.com時,它會將我引導到我應該登錄的頁面。

任何想法爲什麼?我的意思是我可以將它設置爲www,但我想知道原因是什麼?

感謝

+2

您的cookies只適用於'www'範圍。您可以在設置Cookie時定義範圍,通常,您可以將其設置爲「http:// *。myurl.com」,以便適用於所有子域。 – JCOC611 2012-08-09 04:10:46

+0

我已經設置我的cookie爲「/」='setcookies(「name」,「value」,$ time,「/」)'這不適用於子域? – hellomello 2012-08-09 04:13:05

+0

我猜想這隻會適用於你當前的子域名(所以如果它設置在「http:// www.myurl.com」,那麼它只適用於這樣的)。 – JCOC611 2012-08-09 04:25:42

回答

2

我假設你正在使用PHP的setcookie()功能(因爲這是你評論什麼對你的問題)設置你的cookies。

PHP會將這些cookie設置爲用戶當前所在的域。如果用戶位於www.mysite.com,則Cookie將僅應用於www. -subdomain。而應該給域PHP應該設置的cookie:

setcookie('name', 'value', $time, '/', '.example.com') 

注意前導點:.example.com,因爲它使cookie將被上example.com所有子域(即www.example.comexample.com應用於表示一個通配符以及您可能擁有的其他子域名)。

有關此功能的更多信息:PHP docs