子域的session_set_cookie_params

时间:2012-05-11 07:40:42

标签: php subdomain sessionid

这可能有些令人困惑,所以在我解释这个问题的时候请耐心等待。

我有一个网站www.mydomain.com和一个移动版m.mydomain.com 主网站没有任何特定的cookie_params设置 移动网站专门设置

session_set_cookie_params(0, '/', '.mydomain.com');

自动检测移动设备&指向移动网站。

移动网站使用https://www.mydomain.com/mobile/进行结帐,以便SSL证书有效。所以我们正在从m转换。到www。当我们安全的时候。

这就是陌生感开始的地方......

在我的iPhone上,我可以完全没有任何问题地完成整个过程。

然而,当我使用电脑浏览器&特别选择使用移动网站,我无法进入结账 - 原因是session_id在m之间变化。 &安培;万维网。 (&数据库找不到你的篮子物品,所以它不会让你进入结账) 或者更确切地说,有2个会话ID - 一个用于www。 &安培;一个为米。

鉴于移动网站的每个页面都有上述参数集,为什么计算机浏览器选择使用www。会话ID?

任何解决此问题的建议都会非常感激。

其他信息: 我从firefox&中删除了所有的cookie重新启动浏览器。我直接去了m.mydomain.com&这项工作正常,我可以结账。

所以也许有了这个信息,问题变成是否有办法强制移动网站 - 无论URL - 使用特定的cookie参数名称?

1 个答案:

答案 0 :(得分:1)

session_set_cookie_params(0, '/', '.'.str_replace('www.','',$_SERVER['HTTP_HOST']));
session_name('ses_name');
session_start();