我的網站使用PHP會話跟蹤登錄的用戶。每個頁面都有session_start();正確實施,但在鉻時,我把www。來自域名的它不使用會話變量。當我把它換回沒有www。它再次正常工作,所以變量不會被取消設置,而只是不被使用。PHP會話變量丟失了www或沒有
在Firefox中奇怪的是它是相反的。萬維網。工作,沒有沒有。有沒有解決的辦法?我遇到了麻煩,因爲我使用PayPal重定向到我的網站,我不能讓我的用戶直接註銷並返回。
我的網站使用PHP會話跟蹤登錄的用戶。每個頁面都有session_start();正確實施,但在鉻時,我把www。來自域名的它不使用會話變量。當我把它換回沒有www。它再次正常工作,所以變量不會被取消設置,而只是不被使用。PHP會話變量丟失了www或沒有
在Firefox中奇怪的是它是相反的。萬維網。工作,沒有沒有。有沒有解決的辦法?我遇到了麻煩,因爲我使用PayPal重定向到我的網站,我不能讓我的用戶直接註銷並返回。
www.example.com
和example.com
是不一樣的網站。他們通常是,但只是按慣例。 www.example.com
是example.com
爲此子站點,上example.com
設置Cookie不會在www.example.com
,反之亦然使用,因爲這將是不安全的假設他們是同樣的事情。
您可以通過允許會話cookie通過設置php.ini中session.cookie_domain
到.example.com
上的所有子域工作,以及主域名覆蓋此行爲在一定程度上(用你自己的域名代替,當然)
您應該在PHP中設置cookie_domain,或者確保您的用戶只能使用www或不使用www來查看您的網站。您可以使用.htaccess(apache服務器)來完成此操作。
實例來設置你的Cookie域爲多個子域:
session_set_cookie_params(0, '/', '.example.com');
session_start();
'www'在會話cookie來講方面diferent用'無www'。你應該選擇一個。這就是爲什麼像SO這樣的網站強迫他們的訪客去除www。而且,在不同的(子)域上擁有兩個完全相同的網站並不是一個好習慣。 – rlatief
聽起來像會話cookie被設置爲在特定域下運行。我實際上並不知道如何完成,但您可以檢查會話cookie設置。無論是這樣或每次只能從'www'(或back)重定向 –