//以商品為單位分別存入到各個不同的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; }