我正在調試會話登錄,當我登錄到www.domainname.com時,會話將只與www一起設置。PHP會話登錄不同的URL與www和沒有www?
當我要去url domain.com時,會話登錄被忽略,我將被提示重新登錄表單。
我也設置了會話cookie_domain,但沒有工作。
任何人都可以幫助我嗎?爲什麼?
我正在調試會話登錄,當我登錄到www.domainname.com時,會話將只與www一起設置。PHP會話登錄不同的URL與www和沒有www?
當我要去url domain.com時,會話登錄被忽略,我將被提示重新登錄表單。
我也設置了會話cookie_domain,但沒有工作。
任何人都可以幫助我嗎?爲什麼?
我強烈建議將用戶重定向到該網站的規範版本(可能是www.example.com域名)。環顧四周,你會注意到大多數網站爲了一致性而做到這一點(包括SO;看看當你去到www.stackoverflow.com時會發生什麼)。
我知道這個問題與「誰先來?雞蛋還是雞?」一樣古老。
我在這個問題上有很多麻煩。 但是......如果你正在使用PHP我已經找到了解決辦法:
在您的登錄腳本插入在第一線
<?php
session_set_cookie_params(0, '/', 'www.yourdomain.com');
session_start()
?>
,或者你可以嘗試yoursubdomain.yourdomain.com
代替www.yourdomain.com
。
它適用於我。希望它也能幫助其他用戶。
你有沒有嘗試過的會話域設置爲「.example.com的」?:
$lifetime = 0;
$path = '/';
$domain = '.yourdomain.com';
session_set_cookie_params($lifetime, $path, $domain);
注意在$domain
字符串變量的開始點。
檢查功能here的參考。
您必須設置Cookie域錯誤。這是Cookie的默認行爲,它們只能在設置的相同完全限定域中訪問。 – 2011-01-27 05:47:04