<?php
setcookie('user','test values',time()=3600);
//or
$_COOKIE['user']='test values';
?>

解决方案 »

  1.   

    setcookie值会保存在客户端[浏览器不禁cookie情况下],下次访问能取到[有效期内]
    后一种,是个普通数组,恰好名字看起来像cookie
      

  2.   

    就知道setcookie是设置
    $_COOKIE能设置值,也能取值
      

  3.   

    不赞同你的理解,我测试的结论是:直接给$_COOKIE数组成员赋值,会建立一个理解过期的cookie。<?php
    setcookie('user','test values',time());
    //等价
    $_COOKIE['user']='test values';
    ?>不知各位的理解如何?
      

  4.   

    自己测试一下咯,你的理解是错误的.$_COOKIE['c'] = 1;
    setcookie('a',2,time()+3600);
    echo "<pre/>";
    print_r(apache_response_headers());
    刷新一下看看返回头的Set-cookie项,有没有c?
    最好是用firebug看返回头..apache_response_headers()信息不够全.
      

  5.   

    楼上提醒的很对,我看可以这样理解吧使用setcookie设置的$_COOKIE成员是真正的cookie,会由http发送保存到客户端(即使立即过期)。同时$_COOKIE数组也可以像普通数组那样操作,但这些操作都只影响到当前。在下一次请求中,客户端的cookie数据又会重新构成$_COOKIE数组的那些成员。<?phpsetcookie('a',2,time()+3600);//建立$_COOKIE['a']='a';$_COOKIE['a'] = 1;//设置为$_COOKIE['a']=1;?>在下一次页面中<?php
    var_dump($_COOKIE);//使用客户端数据'a'又建立了$_COOKIE。
    ?>
      

  6.   

    我是这样想的$_COOKIE['key'] = 'value';//我还是觉得这只是个普通数组,但这个的确是个全局能访问到的数组元素,只是因为占了命名的便宜。但这样子并没有改变herder里的cookie信息,只是定义或重新赋值了全局数组成员的其中一个值$_SESSION['key'] = 'value';//相对的,我的理解是$_SESSION机制,就是执行到最后,会执行一个类似于register_shutdown_function(array(&$this, 'sava_session'));这样的一个过程,这会把最终的值保存在服务器端,而cookie不会,cookie只能在任何输出前,通过setcookie设置