我正在尝试处理两个PHPSESSID cocokies。一个使用www子目录 - 所以www.mydomain.com - 而另一个使用.mydomain.com。
现在,脚本可以设置cookie域,但如果在访问mydomain.com之前在www子域运行了另一个脚本,那么cookie将设置为www.mydomain.com。然后,如果我访问mydomain.com,则会设置.mydomain.com的cookie。这意味着我最终可以使用两个PHPSESSID cookie。
有没有办法确定我在这样的场景中处理哪个cookie?
我看过另一篇文章,但没有得出任何结论。
答案 0 :(得分:0)
为什么不在php.ini中更改会话cookie名称?
session.name = WHATEVER_YOU_LIKE
答案 1 :(得分:0)
您应该将所有流量重定向到两者中的一个。这将解决您遇到的问题,并处理重复的搜索结果。使用www或无www。检查第362行:
https://github.com/h5bp/html5-boilerplate/blob/master/.htaccess
除非你有理由同时使用www。和。
答案 2 :(得分: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。