代码很简单
session_start();
header(content-type: text/html;charset=utf-8);
setcookie ('username', aa,time()+3600*24*365);
$_session['username'] = a;
echo phpsessid:.$_cookie['phpsessid'];
在firefox,chrome中能正常显示phpsessid,但在ie中有写入session,却没法写入到 $_cookie['phpsessid'],导致后面调取不到session内容。求解答
环境ie6
分享到: 更多
------解决方案--------------------
刷新一下就有了,除非你关闭了 cookie
------解决方案--------------------
setcookie ('username', aa,time()+3600*24*365,/);
------解决方案--------------------
看到楼主session_start后就马上echo了phpsessid..
setcookie后虽然服务端会发送cookie数据给浏览器,但是$_cookie数组不会马上得到这个相应的键,包括第一次session_start后cookie不会马上有phpsessid的,cookie数组的生成是请求发生时,浏览器附带cookie到服务端,服务端才生成的,不是setcookie时实时变化的
所以第一次setcookie或者session_start,$_cookie数组是空的,但客户端却已经有了cookie数据了,等客户端刷新再请求过来时就会有cookie数组的内容了,不过楼主刷新多几次倒不会看到报错.希望楼主对这方面有正确的理解,或者可能你本身已经知道.
==========================================
正题,按照我的经验,发送cookie要兼容ie浏览器的话必须在setcookie函数的参数中带上path参数
