查看: 8459|回复: 1
打印 上一主题 下一主题

php cookie/session cart 购物车

[复制链接]
跳转到指定楼层
1#
发表于 2009-6-3 17:35:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
缺点每次更改cookie都要刷新页面以获取最新的cookie值(cookie保存在客户端)




<?php

class CookieCart
{

var $cookieName='eifrcookeCart';

//获取购物车信息
function getcart()
{
    $cur_cart_array = unserialize(stripslashes($_COOKIE[$this->cookieName]));
    return $cur_cart_array;
}

//加入购物车
function addcart($goods_id,$goods_num)
{
    $cur_cart_array = unserialize(stripslashes($_COOKIE[$this->cookieName]));
    if($cur_cart_array=="")
    {
        $cart_info[0][] = $goods_id;
        $cart_info[0][] = $goods_num;
        setcookie($this->cookieName,serialize($cart_info));
    }
    elseif($cur_cart_array<>"")
    {
        //返回数组键名倒序取最大
        $ar_keys = array_keys($cur_cart_array);
        rsort($ar_keys);
        $max_array_keyid = $ar_keys[0]+1;
        //遍历当前的购物车数组
        //遍历每个商品信息数组的0值,如果键值为0且货号相同则购物车存在相同货品
        $is_exist = false;
        foreach($cur_cart_array as $goods_current_cart)
        {
            foreach($goods_current_cart as $key=>$goods_current_id)
            {
                if($key == 0 and $goods_current_id == $goods_id)
                {
                    $is_exist = true;
                    break;
                }
            }
        }
        if(!$is_exist)
        {
            $cur_cart_array[$max_array_keyid][] = $goods_id;
            $cur_cart_array[$max_array_keyid][] = $goods_num;
            setcookie($this->cookieName,serialize($cur_cart_array));
        }
    }
}

//从购物车删除
function delcart($goods_array_id)
{
    $cur_goods_array = unserialize(stripslashes($_COOKIE[$this->cookieName]));
    //删除该商品在数组中的位置
    unset($cur_goods_array[$goods_array_id]);
    setcookie($this->cookieName,serialize($cur_goods_array));
}

//清空购物车
function emptycart()
{
    setcookie($this->cookieName,"");
}

//修改购物车货品数量
function update_cart($up_id,$up_num,$goods_ids)
{

    //先清空cookie,以便重新设置,传递过来三个数组参数 1数组的标识 2商品数量数组 3商品编号数组
    //如果不清空cookie则无法处理数量为零的商品
    setcookie($this->cookieName,"");
    foreach($up_id as $song)
    {

        //先返回数组当前单元;再把指针向下移动一个位置
        $goods_nums = current($up_num);
        $goods_id = current($goods_ids);
        next($up_num);
        next($goods_ids);
        //当商品数量为空的时候,注销此处的数组值并用continue 2 语句避开下面的操作,继续做foreach循环
        while($goods_nums == 0)
        {
            unset($song);
            continue 2;
        }

        $cur_goods_array[$song][0] = $goods_id;
         $cur_goods_array[$song][1] = $goods_nums;  
    }

    setcookie($this->cookieName,serialize($cur_goods_array));

}
}
?>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
2#
 楼主| 发表于 2009-6-3 17:42:42 | 只看该作者
台州网址导航
<?php

class SessionCart
{

var $sessionName='eifrSessionCart';

//初始化
function SessionCart()
{
    if(!isset($_SESSION[$this->sessionName]))
    {
        session_register($this->sessionName);
        $_SESSION[$this->sessionName] = '';
    }
}

//获取购物车信息
function getcart()
{
    $cur_cart_array = unserialize($_SESSION[$this->sessionName]);
    return $cur_cart_array;
}

//加入购物车
function addcart($goods_id,$goods_num)
{
    $cur_cart_array = unserialize($_SESSION[$this->sessionName]);
    if($cur_cart_array=="")
    {
        $cur_cart_array[0][] = $goods_id;
        $cur_cart_array[0][] = $goods_num;
        $_SESSION[$this->sessionName] = serialize($cur_cart_array);   
    }
    elseif($cur_cart_array<>"")
    {
        //返回数组键名倒序取最大
        $ar_keys = array_keys($cur_cart_array);
        rsort($ar_keys);
        $max_array_keyid = $ar_keys[0]+1;
        //遍历当前的购物车数组
        //遍历每个商品信息数组的0值,如果键值为0且货号相同则购物车存在相同货品
        $is_exist = false;
        foreach($cur_cart_array as $goods_current_cart)
        {
            foreach($goods_current_cart as $key=>$goods_current_id)
            {
                if($key == 0 and $goods_current_id == $goods_id)
                {
                    $is_exist = true;
                    break;
                }
            }
        }
        if(!$is_exist)
        {
            $cur_cart_array[$max_array_keyid][] = $goods_id;
            $cur_cart_array[$max_array_keyid][] = $goods_num;
            $_SESSION[$this->sessionName] = serialize($cur_cart_array);
        }
    }
}

//从购物车删除
function delcart($goods_array_id)
{
    $cur_goods_array = unserialize($_SESSION[$this->sessionName]);
    //删除该商品在数组中的位置
    unset($cur_goods_array[$goods_array_id]);
    $_SESSION[$this->sessionName] = serialize($cur_goods_array);
}

//清空购物车
function emptycart()
{
    $_SESSION[$this->sessionName] = '';
}

//修改购物车货品数量
function update_cart($up_id,$up_num,$goods_ids)
{

    //先清空cookie,以便重新设置,传递过来三个数组参数 1数组的标识 2商品数量数组 3商品编号数组
    //如果不清空cookie则无法处理数量为零的商品
    $_SESSION[$this->sessionName] = '';
    foreach($up_id as $song)
    {

        //先返回数组当前单元;再把指针向下移动一个位置
        $goods_nums = current($up_num);
        $goods_id = current($goods_ids);
        next($up_num);
        next($goods_ids);
        //当商品数量为空的时候,注销此处的数组值并用continue 2 语句避开下面的操作,继续做foreach循环
        while($goods_nums == 0)
        {
            unset($song);
            continue 2;
        }

        $cur_goods_array[$song][0] = $goods_id;
         $cur_goods_array[$song][1] = $goods_nums;  
    }
    $_SESSION[$this->sessionName] = serialize($cur_goods_array);

}

}
?>
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州朗动科技(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:政企网站,系统平台,微信公众号,各类小程序,手机APP客户端,浙里办微应用,浙政钉微应用、主机域名、虚拟空间、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2026 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表