关于cookie作用域和session冲突问题

名词释义:
在php.ini文件中:
session.cookie_domain     =         ; 
//此句为设置cookie的作用域
//默认为空表示根据cookie规范生成的主机名。

问题描述:
1)、有2个域名,aa.com 和 bb.com在同一台服务器上架设。在服务器上设置了 session.cookie_domain="a.com",此时因为cookie作用域的问题登录b.com时出错,总是登陆不上去,cookie无法保存。
2)、有两个域名c.aa.com 和 d.aa.com在同一台服务器上,在服务器上设置了session.save_path("tcp://127.0.0.1:11211"),由于两个域名的cookie作用域相同,session名称相同,session信息保存的路径又一样,所以在同一个浏览器上同时登录这两个网站时,会造成session冲突,致使其中一个网站后台无法正常登陆。

相应问题解决:
1)、由于更换原有服务器中对cookie作用域的设置会影响到aa.com域名下session跨域问题。故此目前只好在bb.com网站程序文件中对php.ini文件进行了设置。代码如下:ini_set("session.cookie_domain",".bb.com");
2)、同1)中原因,因两个域名在同一台机器上,php.ini的配置无法分开设置,只好在d.aa.com网站程序文件中更改session存储路径(如下):
   session_save_path("tcp://127.0.0.1:11212");
   @session_start (); (注意,此设置需在session开启前设置方有效)

你可能感兴趣的:(关于cookie作用域和session冲突问题)