2012-03-18 74 views
0

在我的主頁www.website.com我有一個登錄表單,並註冊了一個會話:餅乾跨子網域與重定向

ini_set('session.gc_maxlifetime', 7200);//set cookie lifetime to 2 hours 
ini_set("session.cookie_lifetime", 7200); 
ini_set("session.cookie_httponly", 1);//set cookie httponly 
ini_set("session.cookie_domain", ".website.com"); 
session_start(); 
$_SESSION['login']='yes'; 
header('Location: http://panel.website.com/'); 

因此,用戶將被重定向到http://panel.website.com。在那裏,我有以下代碼:

ini_set('session.gc_maxlifetime', 7200);//set cookie lifetime to 2 hours 
ini_set("session.cookie_lifetime", 7200); 
ini_set("session.cookie_httponly", 1);//set cookie httponly 
ini_set("session.cookie_domain", ".website.com"); 
session_start(); 
if (!isset($_SESSION['login'])) { 
    header('Location: http://www.website.com/error.php'); 
    exit(); 
} 

所以問題是:子域名還不能使用的會話,用戶總是重定向到website.com/error.php。

我應該改變什麼?我嘗試了session.cookie_domain,但它不起作用。請告訴我,如果你需要更多的信息(如phpinfo數據)。

謝謝!

+1

是否已經設置的路徑既'/'? – alex 2012-03-18 16:32:08

+0

是的,的確如此。 – Jordy 2012-03-18 16:39:49

+0

你用哪個瀏覽器測試這個? – hakre 2012-03-18 16:44:55

回答

0

從這裏開始:PHP Sessions across sub domains 設置會話名似乎可以解決它。

$some_name = session_name("some_name"); 
session_set_cookie_params(0, '/', '.website.com'); 
session_start(); 
+0

會話名稱不:-( – Jordy 2012-03-18 16:39:02

+0

會話名稱的工作不應該有所作爲,所以我不知道爲什麼有人建議作爲一個答案。鏈接的問題並沒有告訴從我讀那裏。 – hakre 2012-03-18 16:45:35

+0

問題解決了:主機禁止寫的白癡和讀權限的會話保存路徑:S – Jordy 2012-03-18 17:30:18