2010-06-10 89 views
5

你好,這裏有點麻煩。 我有domain.co.uk設置會話。當我點擊domain.co.uk上的鏈接轉到sub.domain.co.uk時,該會話未被閱讀。域名 - >子域名 - 傳遞會話數據

我已經改變session.cookie_domain到.domain.co.uk不是仍然沒有工作。還有什麼需要改變?

問候, 我。

+0

這兩個域是否由相同的PHP代碼庫處理? – 2010-06-17 11:29:54

+0

有同樣的問題,發現這個答案適用於我:[跨子域的PHP會話](http://stackoverflow.com/a/1457582/826668) – Kyle 2012-02-26 06:28:51

+0

你應該看看:http:// stackoverflow。 com/questions/1064243/php-sessions-across-sub-domains – Lizard 2010-06-10 13:22:10

回答

0

有關存儲在Cookie中的會話ID的信息。如果主域設置了子域,則子域不能讀取cookie。查看有關session_name & setcookie和session_id()php函數的信息。或將會話ID存儲在其他地方(例如,mysql數據庫) P.S .:對不起,我的英語。

0

我與五社同意,

我提交表單數據或SQL存儲盡我所有的會話切換。然後在新的域環境中重新創建會話。

我不是100%肯定,如果有一個更簡單的方法?

不知道有沒有什麼幫助。

巴蒂爾

在htacces
+0

傳遞它作爲表單數據要求它通過SSL傳遞,否則會話劫持可能會被執行,除非它被序列化和加密等。 – grandnasty 2010-06-15 12:27:23

1

文件

php_value session.cookie_domain ".domain.co.uk" 

,大功告成

0

會話數據存儲在cookie中,如果您的域名google.com則只有域谷歌.com可以訪問cookie會話數據,如用戶名或會話ID。

dev.google.com無法訪問google.com的Cookie,這意味着登錄google.com的用戶在訪問dev.google.com時不會登錄。這是除非有一些機制,例如將查詢字符串中的會話ID傳遞給dev.google.com。

0

這個簡單的代碼將幫助你很多,只要給它一個try.it將工作100%。

<?php 
session_set_cookie_params(0, '/', '.domain.co.uk'); 
session_start(); 
?>