0

我正在尝试处理两个 PHPSESSID 可可。一个使用 www 子目录 - 所以 www.mydomain.com - 而另一个使用 .mydomain.com。

就目前而言,该脚本能够设置 cookie 域,但如果在我访问 mydomain.com 之前在 www 子域上运行另一个脚本,则该 cookie 是为 www.mydomain.com 设置的。然后,如果我访问 mydomain.com,则会设置 .mydomain.com 的 cookie。这意味着我可以得到两个 PHPSESSID cookie。

有没有办法确定在这种情况下我正在处理哪个 cookie?

我看过另一篇帖子,但没有得出任何结论。

如何处理多个同名cookies?

4

3 回答 3

0

相反,您应该将所有流量重定向到两者之一。这将解决您遇到的问题并处理重复的搜索结果。使用 www 或不使用 www。检查第 362 行:

https://github.com/h5bp/html5-boilerplate/blob/master/.htaccess

除非你有理由同时使用 www。和 。

于 2013-02-25T19:59:13.577 回答
0

把它放在第一个运行的 php 文件的顶部,比如 index.php 或 config.php 文件。在会话开始之前。

<?php

if(stripos($_SERVER['HTTP_HOST'],'www')===false) {
   ini_set('session.cookie_domain', 'site.com');
} else {
   ini_set('session.cookie_domain', 'www.site.com');
}

?>

这将导致 cookie 仅与 1 个或其他域相关联,这意味着用户可以拥有 2 个名为 PHPSESSID 的 cookie。

于 2013-02-26T12:49:08.283 回答
0

为什么不直接更改 php.ini 中的会话 cookie 名称?

session.name = WHATEVER_YOU_LIKE
于 2013-02-25T19:58:44.380 回答