2010-06-10 69 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(); 
?>