我正在一個網站上有多個子域,其中一些應該有自己的會話。PHP:Cookie域/子域控制
我想我已經搞清楚了,但已經注意到了一些我不明白的cookie處理方法。我沒有看到解釋它的文檔中的任何內容,所以我想我會看看是否有人在這裏提供了一些解決問題的方法。
如果我只是做:
session_start();
我結束了一個會話cookie這樣的:
subdomain.example.net
但是,如果我做任何嘗試設置cookie域名我自己,或者像
ini_set('session.cookie_domain', 'subdomain.example.net');
或類似
session_set_cookie_params(0, "/", "subdomain.example.net", false, false);
我最終爲.subdomain.example.net(注意開頭點),我相信意思是「匹配所有子域(或在這種情況下子子域)的Cookie。
這似乎發生在我所有的cookie中,而不僅僅是會話。如果我自己設置Cookie域,它會自動添加點,意味着此域及其所有子域。如果我沒有設置域名,那麼只需使用當前域名即可。
任何想法是什麼導致這一點,我能做些什麼來控制這個前置點?
謝謝!
根據每個現代瀏覽器實現的RFC 6265,您不必控制前導點,因爲它只是被瀏覽器忽略*。所以,不要考慮這個主要的點。除此之外,請明確設置cookie域,或將其設置爲空字符串以將其限制爲當前請求主機。圖書館https://github.com/delight-im/PHP-Cookie有一些方便的控制。 – caw 2016-07-13 00:05:28