2013-10-29 20 views
1

我有以下問題(我知道你們中的很多人可能已經或有過),但是我仍然沒有找到解釋滿足我的任何解釋,或者至少有一個合適的解決方案。沒有www不同會話的相同URL

在我製作的任何網站的會話腳本中,如果用戶使用www.domain.com登錄域並登錄,但隨後在不同的選項卡中,他將訪問沒有www的同一頁面。 (domain.com)該會話尚未開始。

我在stackoverflow上發現了這兩個問題,但他們都沒有提供真正的解決方案或至少解釋爲什麼會出現這種行爲。

different session with url's with-www and without-www

PHP session login different for url with www and without www?

好走一點,這重定向和規則並不在我的情況下工作。

爲什麼?因爲我正在與使用cURL檢索我發送給他們的一些數據的支付提供商合作,並且當他們將響應發回給我時,他們使用我必須給他們的默認URL。目前他們將地址設置爲www。但是如果我的一個用戶使用沒有www的域名訪問該網站的特定頁面呢?當我從提供商那裏得到響應時,它轉到www.site.com,並且用戶沒有登錄。並且不能採取任何行動。

有什麼需要幫忙嗎?

謝謝 乾杯。

+0

其實[this](http://stackoverflow.com/a/6784709/508666)確實回答了這個問題 – PeeHaa

+0

是的,我滑過帖子中的一條重要線條,感謝您注意,我現在設法解決它。 – DannyG

回答

1

作爲所述的有http://www.php.net/manual/en/function.setcookie.php

餅乾可用到較低的結構域,例如 'example.com' 將是 提供給更高的子域,例如 'www.example.com'

所以只是做

session_set_cookie_params(0, '/', 'yourdomain.com'); 

沒有www

+0

謝謝你的回答。我在哪裏可以把代碼放在那兒,我有點迷路了。 它會爲域內的每個網址工作嗎? – DannyG

+0

@DannyG,這個函數應該在腳本中的'session_start()'之前調用。是的,它適用於每個更高級的域名。實際上,您可以輕鬆驗證此事實:轉到任何stackoveflow子域(例如meta.stackoveflow.com)並查看cookie。您將從'.meta.stackoverflow.com'看到一些,但也從'.stackoverflow.com'看到。是的,你可以嘗試在域名的開頭加一個點,不知道確切的,但它可能更加兼容。 – Arantir

+0

感謝@Arantir我試過了代碼,它現在工作正常,非常感謝你:) – DannyG

相關問題