if($_COOKIE['dates']==''){
    setcookie("dates", date("Y-m-d H:i:s"), time()+604800);
}else{
    echo '<br />'.$_COOKIE['dates'];
}
设置了这样一个cookie,为什么PHP脚本第一次在IE里打开后获取一个日期,然后同样的脚本第二次在FIREFOX打开,还是获取IE里打开的那个日期值?setcookie到底是服务器cookie,还是浏览器cookie?我想设置浏览器cookie,即不同的浏览器打开页面后记录不同的COOKIE值,过期时间为一周。

解决方案 »

  1.   

    服务器有cookie?
    setcookie设置的是客户端的cookie。if($_COOKIE['dates']==''){    //这里判断当dates为空时才设置cookie,所以第一次打开时被赋值
        setcookie("dates", date("Y-m-d H:i:s"), time()+604800);
    }else{     //因为第一次已经有值了,所以以后再打开都是这个值,直到dates的生命周期结束
        echo '<br />'.$_COOKIE['dates'];
    }
    另外建议这样写if(!isset($_COOKIE['dates'])){    //使用isset判断变量是否存在
        setcookie("dates", date("Y-m-d H:i:s"), time()+604800);
    }else{
        echo '<br />'.$_COOKIE['dates'];
    }
      

  2.   

    cookie 是保存在客户端的
    不会出现你说的情况,不知道你怎么测试的
      

  3.   

    贴出你全部测试代码就真的 或者是你在获取保存cookie的变量 获取的时候出现了问题。
      

  4.   

    1.cookie是保存到客户端的。
    2.session是保存到服务器端的。
    一般情况优先考虑使用session(好处的话,自己查看一下其它资料)我也是刚刚学习PHP的,呵呵!!!
    不知道那位大侠可以推荐几个PHP群给我的
    或者加一下我QQ的:610540622
      

  5.   

    cookie是保存在客户端的,另外不同的浏览器是不能获取其它浏览器的cookie值的。
      

  6.   

    楼上的都说了。另外说下,cookie速度较session快点