購物車信息存cookie


//以商品為單位分別存入到各個不同的cookie中,避免因為cookie值過大,導致數據存儲失敗
$cart_info_one[brand_name] = $parent['brand_name'];
setcookie("cart_info_".$maxindex,serialize($cart_info_one),time()+315360000,'/');

//獲取cookie中購物車中信息
$cart_info_arr[] = unserialize(stripslashes($_COOKIE["$cookie_name"]));//cookie 購物車信息

//主要函數封裝方法
/*
 * 用戶登錄后將本地購物車cookie和數據庫信息進行同步
 * */
function syn_cart_cookie(){
    if(empty($_SESSION['user_id'])){
        return;
    }
    $sql = "SELECT goods_id FROM ".$GLOBALS['ecs']->table('cart')." WHERE user_id=".$_SESSION['user_id'];
    $cart_goods_id = $GLOBALS['db']->getAll($sql);
    foreach ($cart_goods_id as $cart_goods_id_list){
        $db_cart_goods_id[] = $cart_goods_id_list['goods_id'];
    }
   
    $cart_info_arr = cookie_cart_info();//cookie 購物車信息
    if(!is_array($cart_info_arr)){
        return ;
    }
   
    foreach ($cart_info_arr as $key=>$cart_info_list){
        $cart_info = array();
        if(!in_array($cart_info_list['goods_id'], $db_cart_goods_id)){
            unset($cart_info_list['rec_id']);
            $cart_info_list['user_id'] = $_SESSION['user_id'];
            $cart_info_list['session_id'] = $_SESSION['session_id'];
            $GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('cart'), $cart_info_list, 'INSERT');
        }
    }
    clean_cookie_cart();//清除購物車cookie信息
}

/* 獲取cookie中購物車的名稱 */
function cookie_cart_index(){
    $cookie_keys = array_keys($_COOKIE);
    foreach ($cookie_keys as $cookie_keys_list){
        if(strpos($cookie_keys_list,'cart_info_') !== false && is_numeric(ltrim($cookie_keys_list,'cart_info_'))){
            $index[] = ltrim($cookie_keys_list,'cart_info_');
        }
    }
    if(empty($index)){
        return false;
    }
    return $index;
}

/* 獲取cookie中購物車最大的索引值 */
function cookie_cart_maxIndex(){
    $index = cookie_cart_index();
    if($index === false){
        return -1;
    }
    rsort($index);
    return $index[0];
}

/* 將cookie中的購物車信息合拼為一個二維數組 */
function cookie_cart_info(){
    $index = cookie_cart_index();
    if($index === false){
        return;
    }
    $cart_info_arr = array();
    foreach ($index as $index_info){
        $cookie_name = 'cart_info_'.$index_info;
        $cart_info_arr[] = unserialize(stripslashes($_COOKIE["$cookie_name"]));//cookie 購物車信息
    }
    return $cart_info_arr;
}

/* 清除cookie中購物車信息 */
function clean_cookie_cart(){
    $index = cookie_cart_index();
    foreach ($index as $cart_info_dex){
        setcookie('cart_info_'.$cart_info_dex,'',time()-100,'/');
    }
    return true;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM