我的状况:
第一次登陆设置cookie有效,然后我设置有效时间为0(即:实效), 有效
但是当我再次登陆时,无效,但是如果打开一个新页面从新登陆有效,即在当前页面设置有效时间为0时,这个信息(应该是值)被保留到了当前页面,所以才无法在当前也重新设置cookie有效(登陆),这是网上的解释;
要删除一个已经存在的Cookie,有两个办法: 
一是调用只带有name参数的SetCookie,那么名为这个name的Cookie将被从关系户机上删掉;另一个办法是设置Cookie的失效时间为time()或time()-1,那么这个Cookie在这个页面的浏览完之后就被删除了(其实是失效了)。 
要注意的是,当一个Cookie被删除时,它的值在当前页在仍然有效的。
我的情况应该和这段解释相同,请问有什么办法能在当前页实现cookie的完全删除,而不是单纯的实效?谢谢了

解决方案 »

  1.   

    实现完全删除,必须在客户浏览器关闭之后。
    cookie本身的操作是在客户端,服务器控制不了。lz的情况最好使用session
      

  2.   

    cookie的创建与删除,应该都必需经过页面的刷新,或是页面跳过后 才有效..可以结合session进行处理..
      

  3.   

    php本来就是这么设定的。你要当前页立即无效可以自己写个函数
    function del_cookie($name)
    {
      setcookie($name);
      unset($_COOKIE[$name]);
    }
      

  4.   

    function EmptyEcmsCookie(){
    $set1=del_cookie("mlemail");
    $set2=del_cookie("mlusername");
    $set3=del_cookie("mluserid");
    $set4=del_cookie("mlgroupid");
    $set5=del_cookie("mlrnd");
    }
    function del_cookie($name) 

      setcookie($name);
      setcookie($name,""); 
      unset($_COOKIE[$name]); 
    }
    可是我即便是这样用EmptyEcmsCookie,还是无法清除这5个cookie
      

  5.   

    当然还有一个地方需要说一下, 我用的是ajax登陆,所以是在异步操作另一个login.php进行登陆(设置cookie),成功返回设置后刷新当前页来实现登陆 
    ,而退出是直接操作PHP, 就是不明白为什么第一次的登陆和退出没有问题,但是以后再登陆就不行了,是ajax异步操作的问题吗
      

  6.   

    那有可能是你的目录造成的。
    多数用ajax的人喜欢把ajax单独一个目录来访问。例:
    网页地址在http://xxx.com/x1/index.php
    ajax程序放在http://xxx.com/x2/ajax.php
    如果你没有将cookie的pach指定为/的话,那这两个目录之间的cookie就不能通用,各用各的。解决办法是把ajax放到页面目录或子目录里。指定cookie的pach为根目录/亦可。
      

  7.   

    我当前页面的目录为/(根),ajax文件的目录为/e/ajax/login.php
    已经指定了path为“/”,domian为“”,这样还是不行,不知为什么
      

  8.   

    改变cookie路径前请先使用IE清除cookie功能清掉旧cookie以免造成混乱。
      

  9.   

    应该是这样的,删除了,但是在当前页从新建立cookie无效,怎么也无法创建,