2013-10-18 197 views
0

我有一個小問題,我的php會話 - 當我登錄http://www.domain.com它的作品,但是當我刪除http://www.部分我不得不重新登錄。PHP會話數據丟失沒有http

有什麼我需要在php.ini中更改,以便我可以保持登錄http://www.是否存在?

+0

www的行爲像子域,所以''www.domain.com'和'domain.com'之間存在技術上的區別 –

+1

我會使用.htaccess文件將用戶重定向到一個域或另一個域。 – cmorrissey

回答

0

這是因爲你的cookie設置爲www.domain.com,登錄後你試圖從domain.com訪問它。瀏覽器將阻止它。

您必須通過將.domain.com設置爲參數setcookie()來聲明cookie可供子域訪問。

+0

我加了session_set_cookie_params(0,'/','.domain.com');但可悲的是它沒有工作。有沒有一種方法讓這個會議在兩個網站上運行? – Codemunkie

+0

@Codemunkie你開始會話之前是否設置了它? –

+0

是的,我在session_start()之前的頂部; – Codemunkie

0

您可能需要檢查PHP INI變量:session.cookie_domain,它可能會被設置爲使得它僅適用於全域,試圖只與子域設置它。

+0

並檢查它是否也是http:// stackoverflow。 COM /問題/ 5244497 /會話,和子域/ 5244838#5244838 –

0

我已經做了這樣的(可能不是最好的解決方案,但它的工作)

在.htaccess

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

所以它刪除萬維網。從域中重定向到http。 :)

謝謝你的所有幫助。