主域名www.a.com,二级域名t.a.com,需要实现session跨域,我的例子没什么问题啊!
t.a.com的请求
ini_set('session.cookie_domain','.a.com');
session_start();
echo file_get_contents('http://www.a.com/tmp.php');
www.a.com的tmp.php
ini_set('session.cookie_domain','.a.com');
session_start();
echo session_id();
这个例子够简单吧。可是t.a.com的session_id固定,而www.a.com的session_id与它不同,并且每次刷新都不一样,怎么办啊!?!?
我试了一下,可以的。
默认下,服务器端的php,看客户端http请求中的cookie数组中,是否有PHPSESSID这个键,如果存在,则根据这个PHPSESSID尝试加载session(默认是存在/tmp目录下的文件);如果不存在,则创建一个新的PHPSESSID,并在响应的时候保存这个session并通过setcookie传给客户端。
你这里使用了file_get_contents() 这个函数进行GET请求是不发送cookie的,所以session_id每次都会变。
echo file_get_contents('http://www.a.com/tmp.php?ssionid=$id');
把你的id带着走...
ini_set('session.cookie_domain', '.localhost');
加上这句就不行,注释掉就可以。