簡體   English   中英

如何在localhost上跨子域使用會話?

[英]How do I use sessions across subdomains on localhost?

我通過session_set_save_handler將所有會話存儲在MySQL中,但是現在我需要在localhost上跨子域使用會話。 那甚至可以在本地主機上工作嗎?

我已經添加:

ini_set('session.cookie_domain', '.localhost');

到我的代碼,但這似乎也不能解決問題,可能是因為我在本地主機上運行代碼。 還是有什么解決方法可以在localhost上使用它?

順便說一句,我在Win7上使用XAMPP。

例:

http:// localhost具有session_id 2oog13m67rr1sd1gk94lbf1he2

http://sub.localhost具有session_id 3vr0pdqljothmmf4btlenvk047

因此,我想您不能將.localhost用於session.cookie_domain

我嘗試為.localhost.com設置cookie,它起作用了。 您可以在計算機的主機文件中添加localhost.com的條目,使其指向127.0.0.1,然后瀏覽器會將localhost.com的cookie轉發到http://sub.localhost.com

它在node.js上對我有用,我認為類似的東西也應該在php上工作

由於您已經在組成域名,因此建議您不要重復使用頂級域名。 您可以使用自己擁有的一個,也可以發明一個全新的。 localhost名稱已經有一個明確定義的含義,並且可能導致類似您所面臨的問題。 尤其是,瀏覽器會基於TLD施加限制,因此您將無法例如設置cookie .com.co.uk 我很確定localhost在大多數瀏覽器中也都有自己的規則。

更新:如果您使用的是Chrome,看到這個bug報告解析為無效

您只能為注冊表控制的域設置域Cookie,即以.com左右結尾的域,而不能為IP或Intranet主機名(如localhost)設置

相關問題: Localhost Cookie

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM