php 利用session 实现最简单的方式实现购物车类

 更新时间:2016年11月25日 15:58  点击:1381

class cart
{
    /**
    *   函数名称:   addItem
    *   函数功能:   添加商品
    *   输入参数:   $data ------------- 商品数组
    *   函数返回值: none
    *   其它说明:   因为数据是记录在session中,所以不用返回
    */
    function addItem($data){
     global $config_kezhi;
        if(is_array($data)&&!empty($data)){
            foreach($data as $key=>$val){
                // 如果商品存在就加数量和价格
                if($this->_isExists($key)){
    
     $_SESSION['cart'][$key]["paddy_count"] += $val['paddy_count'];
     $_SESSION['cart'][$key]["market_count"] += $val['market_count'];
                    $_SESSION['cart'][$key]["goodsnum"] += intval($val['goodsnum']);    
     $arr = $this->getItems($key);
                   // $_SESSION['cart'][$key]["count"] += $_SESSION['cart'][$key]["price"];
      /* if(strlen($_SESSION['cart'][$key]["kezhi"])>0){//没有刻字,加入刻字
      $_SESSION['cart'][$key]["eng_price"]=0;
      $_SESSION['cart'][$key]["eng_price"]=(int)$config_kezhi*intval($arr['num']);
     }else{
      //die("dd");
      $_SESSION['cart'][$key]["eng_price"]=0;
     }*/
     //echo $arr['num'];
     //die();

                }
                // 否则直接加入
                else
                {
                    $_SESSION['cart'][$key]  = $data[$key];
                 //   $_SESSION['cart'][$key]["name"]  = $val['name'];
                  //  $_SESSION['cart'][$key]["price"] = $val['price'];
                   // $_SESSION['cart'][$key]["count"] = round($val['price']*intval($val['num']),2);
                  //  $_SESSION['cart'][$key]["num"]   = intval($val['num']);
                }
            }
        }
    }

    /**
    *   函数名称:   _isExists
    *   函数功能:   判断此商品是否存在
    *   输入参数:   $id ---------- 商品ID
    *   函数返回值: bool
    *   其他说明:   2004-8-19
    */
    function _isExists($id)
    {
        if(isset($_SESSION['cart'][$id])&&!empty($_SESSION['cart'][$id])&&array_key_exists($id,$_SESSION['cart']))
        {
            Return true;
        }
        else
        {
            Return false;
        }
    }

    /**
    *   函数名称:   modItem
    *   函数功能:   修改商品数量
    *   输入参数:   $id -------------- 商品ID
    *              $num ------------- 商品数量
    *   函数返回值: 返回值说明
    *   其他说明:   说明
    */
    function modItem($id,$num)
    {
        $arr = $this->getItems($id);
        // 如果商品存在就加数量和价格
        if($this->_isExists($id))
        {
   $_SESSION['cart'][$id]["goodsnum"]   = intval($num);
   if($arr['paddy_price_special'] > "0"){
    $_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_price_special']*intval($num),2);
   }elseif($arr['paddy_userprice'] > "0"){
    $_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_userprice']*intval($num),2);
   }elseif($arr['paddy_spreadprice'] > "0"){
    $_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_spreadprice']*intval($num),2);
   }else{
    $_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_price']*intval($num),2);
   }
   $_SESSION['cart'][$id]["market_count"] = round($arr['market_price']*intval($num),2);
        }
    }
 


    /**
    *   函数名称:   modItem_wanwei
    *   函数功能:   修改商品腕围
    *   输入参数:   $id -------------- 商品ID
    *              $num ------------- 商品腕围
    *   函数返回值: 返回值说明
    *   其他说明:   说明
    */ 
    function modItem_wanwei($id,$wanwei)
    {
        $arr = $this->getItems($id);
        // 如果商品存在就加数量和价格
        if($this->_isExists($id))
        {
   $_SESSION['cart'][$id]["wanwei"]   = intval($wanwei);
  
            ///$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($num),2);
        }
    }
 

//    function modItem_kezhi($id,$kezhi)
//    {
//        global $config_kezhi;
//  $arr = $this->getItems($id);
//        // 如果商品存在就加数量和价格
//        if($this->_isExists($id))
//        {
//   $_SESSION['cart'][$id]["kezhi"]   = $kezhi;
//            $_SESSION['cart'][$id]['price'] = $arr['price'] + $config_kezhi;
//   $_SESSION['cart'][$id]['count'] = round($_SESSION['cart'][$id]['price']*intval($arr['num']),2);
//        }
//    }
 
 
 function modItem_kezhi($id,$kezhi,$kezhi1="",$kezhi2="")
    {
        global $config_kezhi;
  $arr = $this->getItems($id);
        // 如果商品存在就加数量和价格
  //var_dump($_SESSION['cart']);
  // die();
        if($this->_isExists($id))
        {
   if(strlen($_SESSION['cart'][$id]["kezhi"]) == 0 && strlen($kezhi) != 0){//没有刻字,加入刻字
    //$arr['price'] += $config_kezhi;
    $_SESSION['cart'][$id]["eng_price"]=0;
    $_SESSION['cart'][$id]["eng_price"]=(int)$config_kezhi*intval($arr['num']);
   //$_SESSION['cart'][$id]["price"] = $arr['price'];
   // $_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2);   
    $_SESSION['cart'][$id]["kezhi"] = $kezhi;
    $_SESSION['cart'][$id]["kezhi1"] = $kezhi1;
    $_SESSION['cart'][$id]["kezhi2"] = $kezhi2; 
    ///$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($num),2);
   }elseif(strlen($_SESSION['cart'][$id]["kezhi"]) != 0 && strlen($kezhi) == 0){//有刻字,去除刻字 
    $_SESSION['cart'][$id]["eng_price"]=0;
    //$_SESSION['cart'][$id]["eng_price"]-=(int)$config_kezhi*intval($arr['num']);   
   // $_SESSION['cart'][$id]["eng_price"]-=$config_kezhi;
    //$_SESSION['cart'][$id]["price"] = $arr['price'];
    //$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2);
    $_SESSION['cart'][$id]["kezhi"] = $kezhi;
    $_SESSION['cart'][$id]["kezhi1"] = $kezhi1;
    $_SESSION['cart'][$id]["kezhi2"] = $kezhi2; 
   }elseif(strlen($_SESSION['cart'][$id]["kezhi"]) != 0 && strlen($kezhi) != 0){//有刻字,更改刻字
    //$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2);
    //$_SESSION['cart'][$id]["eng_price"]=0;
    $_SESSION['cart'][$id]["eng_price"]=(int)$config_kezhi*intval($arr['num']); 
    
    $_SESSION['cart'][$id]["kezhi"] = $kezhi;
    $_SESSION['cart'][$id]["kezhi1"] = $kezhi1;
    $_SESSION['cart'][$id]["kezhi2"] = $kezhi2; 
   }
        }
    }

    /**
    *   函数名称:   getItems
    *   函数功能:   取得商品数组
    *   输入参数:   $id --------------- 某商品的ID
    *   函数返回值: array
    *   其它说明:   2004-8-19
    */
    function getItems($id=null)
    {
        if(isset($_SESSION['cart']))
        {
            if($id==null)
            { 
    //print_r($_SESSION['cart']);exit;
                Return $_SESSION['cart'];
            }
            else
            {
                Return $_SESSION['cart'][$id];
            }
        }
    }

    /**
    *   函数名称:   emptyItem
    *   函数功能:   删除商品
    *   输入参数:   $id ----------- 商品ID
    *   函数返回值: bool
    *   其它说明:   2004-8-19
    */
    function emptyItem($id=null)
    {
        if($id==null)
        {
            unset($_SESSION['cart']);
        }
        else
        {
            unset($_SESSION['cart'][$id]);
        }
    }

    /**
    *   函数名称:   sum
    *   函数功能:   统计总价
    *   输入参数:   none
    *   函数返回值: int
    *   其它说明:   2004-8-19
    */
    function sum()
    {
        $total = 0;
        if(isset($_SESSION['cart'])&&!empty($_SESSION['cart']))
        {
            foreach($_SESSION['cart'] as $key=>$val)
            {
                $total += $val['count'];
            }
        }
        Return $total;
    }
}

 session_start();
 $img_width=70;    //先定义图片的长、宽
 $img_height=28;
    $num_array=range(0,9);
 $small_char_array=range('a','z');
 $big_char_array=range('A','Z');
 $myarray=array_merge($num_array,$small_char_array,$big_char_array);
 $mystring=$myarray[mt_rand(0,61)].$myarray[mt_rand(0,61)].$myarray[mt_rand(0,61)].$myarray[mt_rand(0,61)];
    //exit($mystring);
 //unset($_SESSION['shuzi']);
    $_SESSION['shuzi'] = $mystring;
    $aimg = imagecreate($img_width,$img_height);    //生成图片
    imagecolorallocate($aimg, 255,255,255);            //图片底色,ImageColorAllocate第1次定义颜色PHP就认为是底色了
    $black = imagecolorallocate($aimg,200,200,200);        //定义需要的黑色
    imagerectangle($aimg,0,0,$img_width-1,$img_height-1,$black);//先成一黑色的矩形把图片包围

    //下面该生成雪花背景了,其实就是在图片上生成一些符号
    for ($i=1; $i<=100; $i++) {    //先用100个做测试
        imagestring($aimg,1,mt_rand(1,$img_width),mt_rand(1,$img_height),"*",imageColorAllocate($aimg,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)));
        //其实也不是雪花,就是生成*号而已。为了使它们看起来"杂乱无章、5颜6色",就得在1个1个生成它们的时候,让它们的位置、颜色,甚至大小都用随机数,rand()或mt_rand都可以完成。
    }

    //上面生成了背景,现在就该把已经生成的随机数放上来了。道理和上面差不多,随机数1个1个地放,同时让他们的位置、大小、颜色都用成随机数~~
    //为了区别于背景,这里的颜色不超过200,上面的不小于200

        imagestring($aimg,5,mt_rand(5,35),mt_rand(5,$img_height/2),$mystring,imageColorAllocate($aimg,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200)));
 
    Header("Content-type: image/png");    //告诉浏览器,下面的数据是图片,而不要按文字显示
    ImagePng($aimg);                    //生成png格式。。。嘿嘿效果蛮像回事的嘛。。。
    ImageDestroy($aimg);

 

class CreateHtml{
 /*function mkdir($prefix= 'article' ){
  $y = date('Y');
  $m = date('m');
  $d = date('d');
  $p=DIRECTORY_SEPARATOR;
  $filePath='article'.$p.$y.$p.$m.$p.$d;
  $a=explode($p,$filePath);
  foreach ($a as $dir){
   $path.=$dir.$p;
   if(!is_dir($path)){         //echo '没有这个目录'.$path;
    mkdir($path,0755);
   }
  }
  return $filePath.$p; 
 }*/
 
 function start(){
  ob_start();
 }
 
 function end($name){
  $info     = ob_get_contents();
  $fileId   = $name;
  $postfix  = '.html';
  //$path     = $this->mkdir($prefix= 'article');
  $fileName = $fileId.$postfix;
  //$file=fopen($path.$fileName,'w+'); 
  $file=fopen($fileName,'w+');
  fwrite($file,$info);
  fclose($file);
  ob_end_flush();
 }
 
}
?>

 function listDir($dir_path)
  {
   if(is_dir($dir_path)){ 
    if($dir_file=opendir($dir_path)){
     while(($dir_list=readdir($dir_file))!==false)
      {
       if($dir_list!="." && $dir_list!="..")
       {        
        $dirs = explode('/', $dirName);
        $dir='';
        foreach ($dirs as $part) {
         $dir.=$part.'/';
         if (!is_dir($dir) && strlen($dir)>0 && !is_file($dirName))
         {
          mkdir($dir, $rights);
          echo "$dirName<br/>";
         }
        }
       }
      }
    }else{
     echo($dir_path);
    }
  }else{
 
   echo($dir_path);
  }
 }

本站原创www.111cn.net

  //
  function GetAlabNum($fnum)
  {
   $nums = array("0","1","2","3","4","5","6","7","8","9","+","-","%",".");
   $fnums = "0123456789+-%.";
   for($i=0;$i<count($nums);$i++){
    if($nums[$i]==$fnum) return $fnums[$i];
   }
   return $fnum;
  }

[!--infotagslink--]

相关文章

  • PHP session_start()很慢问题分析与解决办法

    本文章来给各位同学介绍一下关于PHP session_start()很慢问题分析与解决办法,希望碰到此问题的同学可进入参考。 最近在做东西的时候发现一个问题 有一个接口挂...2016-11-25
  • ASP.NET购物车实现过程详解

    这篇文章主要为大家详细介绍了ASP.NET购物车的实现过程,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
  • PHP分布式框架如何使用Memcache同步SESSION教程

    本教程主要讲解PHP项目如何用实现memcache分布式,配置使用memcache存储session数据,以及memcache的SESSION数据如何同步。 至于Memcache的安装配置,我们就不讲了,以前...2016-11-25
  • JS实现购物车中商品总价计算

    这篇文章主要为大家详细介绍了JS实现购物车中商品总价的计算 ,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-03-07
  • 详解C#中的session用法

    这篇文章主要介绍了C#中的session用法 ,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • Python3使用Selenium获取session和token方法详解

    这篇文章主要介绍了Python3使用Selenium获取session和token方法详解,需要的朋友可以参考下...2021-02-17
  • React列表栏及购物车组件使用详解

    这篇文章主要为大家详细介绍了React列表栏及购物车组件使用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-06-28
  • 编程新手必须掌握的:session与cookie的区别

    session和cookie是网站浏览中较为常见的两个概念,也是比较难以辨析的两个概念,但它们在点击流及基于用户浏览行为的网站分析中却相当关键。基于网上一些文章和资料的参阅,及作者个人的应用体会,对这两个概念做一个简单的阐述...2013-09-11
  • PHP中如何使用session实现保存用户登录信息

    session在php中是一个非常重要的东西,像我们用户登录一般都使用到session这个东西,相对于cookie来说session 要安全很多,同时我们购物车经常使用session来做临时的记录保存哦。使用session保存页面登录信息1、数据库连接...2015-10-21
  • vue实现简单购物车案例

    这篇文章主要为大家详细介绍了vue实现简单购物车案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-06-01
  • Vue使用axios引起的后台session不同操作

    这篇文章主要介绍了Vue使用axios引起的后台session不同操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-14
  • jQuery实现加入购物车飞入动画效果

    HTML 首先载入jQuery库文件和jquery.fly.min.js插件。复制代码 代码如下: <script src="jquery.js"></script> <script src="jquery.fly.min.js"></script> 接着,将商品信息html结构布置好,本例中,我们用四个商品并排...2015-03-15
  • 基于jquery fly插件实现加入购物车抛物线动画效果

    在购物网站中,加入购物车的功能是必须的功能,有的网站在用户点击加入购物车按钮时,就会出现该商品从点击出以抛物线的动画相似加入购物车,这个功能看起来非常炫,对用户体验也有一定的提高。下面介绍基于jquery fly插件实现加入购物车抛物线动画效果...2016-04-06
  • php中session常见问题分析

    PHP的session功能,一直为许多的初学者为难。就连有些老手,有时都被搞得莫名其妙。本文,将这些问题,做一个简单的汇总,以便大家查阅。 1. 错误提示 引用 代...2016-11-25
  • php设置session生存时间详解

    要设置php生存有效时间我们可以利用session_set_cookie_params函数或修改php.ini文件哦,下面小编来介绍一下。 第一种方法:session_set_cookie_params 函数原型 voi...2016-11-25
  • b2c网站购物车的设计思路

    对于大部分B2C网站来说,购物车是网站的咽喉之地,订单是白花花的银子,所有银子都必然流经购物车,购物车不能有失。优秀的购物车设计至少需要完成两项使命:一是方便用户多买...2016-09-20
  • jQuery使用cookie与json简单实现购物车功能

    这篇文章主要介绍了jQuery使用cookie与json简单实现购物车功能的方法,介绍了jQuery实现购物车的步骤与关键代码,需要的朋友可以参考下...2016-04-18
  • jQuery ajax全局函数处理session过期后的ajax跳转问题

    这篇文章主要介绍了基于jQuery的全局ajax函数处理session过期后的ajax操作的相关资料,需要的朋友可以参考下...2016-06-12
  • 帝国CMS商品加入购物车链接代码

    商品加入购物车链接地址为:[!--news.url--]e/ShopSys/doaction.php?enews=AddBuycar&classid=[!--classid--]&id=[!--id--]...2015-12-30
  • jsp使用sessionScope获取session案例详解

    这篇文章主要介绍了jsp使用sessionScope获取session案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...2021-08-29