Cookie::delete中的bug

浏览:264 发布日期:2010/03/24
- 普通 - 未处理
原代码:    // 设置某个Cookie值
    static function set($name,$value,$expire='',$path='',$domain='') {
        if($expire=='') {
            $expire =   C('COOKIE_EXPIRE');
        }
        if(empty($path)) {
            $path = C('COOKIE_PATH');
        }
        if(empty($domain)) {
            $domain =   C('COOKIE_DOMAIN');
        }
        $expire =   !empty($expire)?    time()+$expire   :  0;
        $value   =  base64_encode(serialize($value));
        setcookie(C('COOKIE_PREFIX').$name, $value,$expire,$path,$domain);
        $_COOKIE[C('COOKIE_PREFIX').$name]  =   $value;
    }

    // 删除某个Cookie值
    static function delete($name) {
        Cookie::set($name,'',time()-3600);
        unset($_COOKIE[C('COOKIE_PREFIX').$name]);
    }
$expire = !empty($expire)? time()+$expire : 0;
这句意味着set的第三个参数expire是过期时间的相对值 系统会自动加上time()
然而delete函数中却使用Cookie::set($name,'',time()-3600); 造成cookie实际无法删除
评论(
后面还有条评论,点击查看>>