2011-01-27 55 views
1

我正在調試會話登錄,當我登錄到www.domainname.com時,會話將只與www一起設置。PHP會話登錄不同的URL與www和沒有www?

當我要去url domain.com時,會話登錄被忽略,我將被提示重新登錄表單。

我也設置了會話cookie_domain,但沒有工作。

任何人都可以幫助我嗎?爲什麼?

+0

您必須設置Cookie域錯誤。這是Cookie的默認行爲,它們只能在設置的相同完全限定域中訪問。 – 2011-01-27 05:47:04

回答

0

我強烈建議將用戶重定向到該網站的規範版本(可能是www.example.com域名)。環顧四周,你會注意到大多數網站爲了一致性而做到這一點(包括SO;看看當你去到www.stackoverflow.com時會發生什麼)。

1

我知道這個問題與「誰先來?雞蛋還是雞?」一樣古老。

我在這個問題上有很多麻煩。 但是......如果你正在使用PHP我已經找到了解決辦法:

在您的登錄腳本插入在第一線

<?php 
session_set_cookie_params(0, '/', 'www.yourdomain.com'); 
session_start() 
?> 

,或者你可以嘗試yoursubdomain.yourdomain.com代替www.yourdomain.com

它適用於我。希望它也能幫助其他用戶。

0

你有沒有嘗試過的會話域設置爲「.example.com的」?:

$lifetime = 0; 
$path = '/'; 
$domain = '.yourdomain.com'; 
session_set_cookie_params($lifetime, $path, $domain); 

注意在$domain字符串變量的開始點。

檢查功能here的參考。