高
端
建
站
平
台
软
件
...

巅云门户建站系统V8.0- 搭载巅云双向绑定可视化布局系统4.0可视化建站引擎,采用Thinkphp6+Vue.js高性能 高可控 模块化、组件式设计,自由灵活 网站功能不再单调 PC、手机、微站、小程序多前端拖拽适配 多种营销功能选配一并拥有!

支持企业站+门户站(资讯+视频+分类信息)+专业商城+自助建站平台(域名注册、网站开设、域名绑定、模板生成)+专业PS级傻瓜式可视化网站制作后台+模块风格100%自定,专为成熟的网络公司搭建自己的建网站平台而生.....

总站
巅云全开源无限制版开售,支持软著申请和二开技术支持,自主软件版权,欢迎有从事软件销售的朋友加入。
PHP购物车源代码分享,如何作商城购物车
作者:软之星   2025-12-23   浏览量:3248

对于商城类网站,购物车是不可少的功能,方便用户批量购买产品,巅云建站系统也增加了购物车模块,当然在开发原理与普通网站的购物车是一样的:

功能如下:

1、任意产品详情页可直接购买或加入购物车

加入购物车

2、可清空购物车。册除单个产品。

3、收银台结算。填写收货地址默认调用会员信息。

4、在线支付结算定单,批量修改产品定单信息和财务信息。当然巅云是多用户系统,还得批量计算各等级会员扣费及价格。

填写收货信息功能购物车在线支付

购物车代码:


1、前台下单源码:


<?session_start();require_once("../common/init.php");?><table width="255"  border="0" cellspacing="0" cellpadding="0"><tr><td width="130" rowspan="6"><div align="center"><?php        if(trim($info['tupian']==""))     {       echo "暂无图片";     }     else     {?><img src="<?php echo $info['tupian'];?>" width="130" height="100" border="0"><?php  }?></div></td>  <td width="20" height="16"> </td>  <td width="113"><font color="EF9C3E">【<?php echo $info['mingcheng'];?>】</font></td> </tr> <tr>  <td height="16"> </td>  <td><font color="910800">【市场价:<?php echo $info['shichangjia'];?>】</font></td> </tr> <tr>  <td height="16"> </td>  <td><font color="DD4679">【会员价:<?php echo $info['huiyuanjia'];?>】</font></td> </tr> <tr>  <td height="16"> </td>  <td>【<a href="lookinfo.php?IDProduct=<?php echo $info['IDProduct'];?>">查看信息</a>】</td> </tr> <tr>  <td height="16"> </td>  <td>【<a href="addgouwuche.php?IDProduct=167">放入购物车</a>】</td> </tr> <tr>  <td height="16"> </td>  <td><font color="13589B">【剩余数量:      <?php        if(($info['shuliang']-$info['cishu'])>0)      {         echo ($info['shuliang']-$info['cishu']);      }      else      {         echo "已售完";      }      ?>】</font></td> </tr> </table>

2、加入购物车代码



<?session_start();require_once("../common/init.php");require_once("../user/security.inc.php");$web=get_web();  $IDProduct=strval($_GET['IDProduct']);$sql="select * from  products where IDProduct='".$IDProduct."' and  user='$web'";   $info=$db->getdata($sql);if(($info['shuliang']-$info['cishu'])<=0) {    echo "<script>alert('该商品已经售完!');history.back();</script>";   exit;  }  $array=explode("@",$_SESSION['producelist']);  for($i=0;$i<count($array)-1;$i++)    {  if($array[$i]==$IDProduct)   {      echo "<script>alert('该商品已经在您的购物车中!');history.back();</script>";    header("location:gouwu1.php");   exit;   } }  $_SESSION['producelist']=$_SESSION['producelist'].$IDProduct."@";  $_SESSION['quatity']=$_SESSION['quatity']."1@";  header("location:gouwu1.php");?>


<?session_start();require_once("../common/init.php");require_once("../user/security.inc.php");$web=get_web();?><!DOCTYPE HTML><html><head><style>body,button,input,select,textarea{line-height:150%;font-family:'微软雅黑';font-size:14px; }body{background:#fff}select {height:32px}.red {color:#f00 !important}a{text-decoration:none;color:#3366ff}.csstable {border:1px solid #ccc;margin-bottom:10px;line-height:220%;border-right:1px solid #eee;border-bottom:1px solid #eee;}.csstable td{border-bottom:1px solid #ccc;border-right:1px solid #ccc;padding:6px 5px 3px 5px;}.csstable1 {border:01px solid #ccc;margin-bottom:10px;line-height:220%;border-right:1px solid #eee;border-bottom:1px solid #eee;}.csstable1 td{border-bottom:0px solid #ccc;border-right:0px solid #ccc;padding:3px 5px 3px 5px;}input{border:1px solid #aaa;background:#fff;height:30px;text-align:center}.buttoncss{background:#c00;color:#fff;border:0;padding:3px 30px}</style></head><body><div class="part1  pad bgf yahei" style="padding:0px 20px">	<h3 class="font26" style="padding-bottom:10px;border-bottom:0px solid #ccc;"><span class="l title"></span><span class="r more"></span></h3>	<div class="bx-c">		<div class="content">      <table width="98%" border="0" align="center" cellpadding="0" cellspacing="0" class="csstable">        <form name="form1" method="post" action="gouwu1.php">              <?php     $_SESSION["total"];     if($_GET['qk']=="yes")     {        $_SESSION['producelist']="";     $_SESSION['quatity']="";       }      $arraygwc=explode("@",$_SESSION['producelist']);      $s=0;      for($i=0;$i<count($arraygwc);$i++)      {          $s+=intval($arraygwc[$i]);      }     if($s==0 )       {       echo "<tr>";   echo" <td height='25' colspan='6' bgcolor='#FFFFFF' align='center'>您的购物车为空!</td>";   echo"</tr>";    }     else      {     ?><tr style="font-weight:bold">  <td width="125" height="25" bgcolor="#FFFFFF"><div align="center">商品名称</div></td>  <td width="52" bgcolor="#FFFFFF"><div align="center">数量</div></td>  <td width="64" bgcolor="#FFFFFF"><div align="center">市场价</div></td>  <td width="64" bgcolor="#FFFFFF"><div align="center">会员价</div></td>  <td width="51" bgcolor="#FFFFFF"><div align="center">折扣</div></td>  <td width="66" bgcolor="#FFFFFF"><div align="center">小计</div></td>  <td width="71" bgcolor="#FFFFFF"><div align="center">操作</div></td></tr><?php/** * 购物车 商品数量管理*/$total=0;$array=explode("@",$_SESSION['producelist']);$arrayquatity=explode("@",$_SESSION['quatity']);//var_dump($array);     while(list($name,$value)=each($_POST))        {          for($i=0;$i<count($array)-1;$i++)          {             if(($array[$i])==$name)                {                  $arrayquatity[$i]=$value;                    }            }             }    $_SESSION['quatity']=implode("@",$arrayquatity);    for($i=0;$i<count($array)-1;$i++)     {         $id=$array[$i];       $num=$arrayquatity[$i];      if($id!="")       {      $sql="select * from  products where IDProduct='".$id."' and  user='$web'";  	    $info=$db->getdata($sql);$pics = json_decode($info['pics'], true);   if (isset($pics)) {                                        foreach ($pics as $key=>$v) {																				$product_pic=$pics[0];																				}}$PInfo=PInfo($id);$Price=$PInfo['iPrice'];       $total1=$num*$Price;       $total+=$total1;       $_SESSION["total"]=$total;   ?><tr>  <td height="25" width='150' bgcolor="#FFFFFF"><div align="center"><?php if ($product_pic==""){?><img src="/skin/default/../skin/v7red/resources/no_pic.png" style="width:60px;height:40px;" /> <?php }else{?><img src="<?=$product_pic?>" style="width:60px;height:40px;" /><?php }?><br><?php echo $info['ProductName'];?></div></td>  <td height="25" bgcolor="#FFFFFF"><div align="center">      <input type="text" name="<?php echo $info['IDProduct'];?>" size="2" class="inputcss" value=<?php echo $num;?>>  </div></td>  <td height="25" bgcolor="#FFFFFF"><div align="center"><?php echo $PInfo['oPrice'];?>元</div></td>  <td height="25" bgcolor="#FFFFFF"><div align="center"><?php echo $PInfo['iPrice'];?>元</div></td>  <td height="25" bgcolor="#FFFFFF"><div align="center"><?php echo @(ceil(($PInfo['iPrice']/$PInfo['oPrice'])*100))."%";?></div></td>  <td height="25" bgcolor="#FFFFFF"><div align="center"><?php echo $PInfo['iPrice']*$num."元";?></div></td>  <td height="25" bgcolor="#FFFFFF"><div align="center"><a href="removegwc.php?IDProduct=<?php echo $info['IDProduct']?>">移除</a></div></td></tr><?php                   }     }?><tr>  <td height="35" colspan="8" bgcolor="#FFFFFF"><div align="right">      <table width="500" height="25" border="0" align="center" cellpadding="0" cellspacing="0" style="border:0" class="csstable1">        <tr>          <td width="125"><div align="center"> <input type="submit" value="更改商品数量" class="buttoncss">          </div></td>          <td width="125"><div align="center"><a href="gouwu2.php">去收银台</a></div></td>          <td width="125"><div align="center"><a href="gouwu1.php?qk=yes">清空购物车</a></div></td>          <td width="195"><div align="left" style="color:red;font-size:24px">总计:<?php echo $total;?></div></td>        </tr>      </table> <?php    }   ?>	</div>	</div>	<div class="bx-b"><div class="bx-b2"></div></div></div></div></body></html>

3、清空购物车单个商品


<?session_start();require_once("../common/init.php");$web=get_web();if($_SESSION['User_S']=="")  {    echo "<script>alert('请先登录,后购物!');history.back();</script>"; exit;  }   $IDProduct=$_GET['IDProduct'];$array=explode("@",$_SESSION['producelist']);$arrayquatity=explode("@",$_SESSION['quatity']);//var_dump($array);           for($i=0;$i<count($array)-1;$i++)          {             if(($array[$i])==$IDProduct)                {                                    unset($arrayquatity[$i]);				   unset($array[$i]);                 }            }             $_SESSION['quatity']=implode("@",$arrayquatity);    $_SESSION['producelist']=implode("@",$array);   die("<script>history.back()</script>");   ?>

4、填写收货信息。

<?session_start();require_once("../common/init.php");require_once("../user/security.inc.php");$web=get_web();$sql="select * from users where UserName='".$_SESSION['User_S']."' and user='$web'";  $uinfo=$db->getdata($sql);?><!DOCTYPE HTML><html><head><style>a{text-decoration:none;color:#3399ff}body{background:#fff}select {height:32px}.red {color:#f00 !important}body,button,input,select,textarea{line-height:150%;font-family:'微软雅黑';font-size:14px; }.csstable {border:1px solid #ccc;margin-bottom:10px;line-height:220%;border-right:1px solid #eee;border-bottom:1px solid #eee;}.csstable td{border-bottom:1px solid #ccc;border-right:1px solid #ccc;padding:6px 5px 3px 5px;}.csstable .bar{font-weight:bold;background:url(images/bar.png);}.csstable .s{background:#eee;}input{border:1px solid #aaa;background:#fff;height:30px;}.buttoncss{background:#c00;color:#fff;border:0;padding:0px 30px;height:30px;}.buttoncss1{background:#ccc;color:#fff;border:0;padding:0px 10px;height:30px;width:40px;}</style></head><body><div class="part1  pad bgf yahei" style="padding:0px 20px">	<h3 class="font26" style="padding-bottom:2px;border-bottom:0px solid #ccc;"><span class="l title">  收货人信息</span><span class="r more"></span></h3>	<div class="bx-c">		<div class="content">      <table width="98%" border="0" align="center" cellpadding="0" cellspacing="0" class="csstable">              <script language="javascript">/** * 购物车 收货人信息 * Edit www.jb51.net*/function chkinput(form)    {      if(form.name.value=="")       {      alert("请输入收货人姓名!");      form.name.select();      return(false);    }    if(form.dz.value=="")       {      alert("请输入收货人地址!");      form.dz.select();      return(false);    }    if(form.yb.value=="")       {      alert("请输入收货人邮编!");      form.yb.select();      return(false);    }    if(form.tel.value=="")       {      alert("请输入收货人联系电话!");      form.tel.select();      return(false);    }    if(form.email.value=="")       {      alert("请输入收货人E-mail地址!");      form.email.select();      return(false);    }    if(form.email.value.indexOf("@")<0)     {        alert("收货人E-mail地址格式输入错误!");        form.email.select();        return(false);     }    return(true);         }           </script>     <form name="form1" method="post" action="savedd.php" onSubmit="return chkinput(this)">      <tr> <td width="100" height="25" bgcolor="#FFFFFF"><div align="center">收货人姓名:</div></td> <td width="183" bgcolor="#FFFFFF"><div align="left"><input type="text" name="Contact_GB" size="25" value="<?=$uinfo['Contact_GB']?>" class="inputcss" ></div></td> <td width="86" bgcolor="#FFFFFF"><div align="center">性别:</div></td> <td width="176" bgcolor="#FFFFFF"><div align="left"> <select name="sex">  <option selected value="男">男</option>  <option value="女">女</option> </select> </div></td> </tr> <tr> <td height="25" bgcolor="#FFFFFF"><div align="center">详细地址:</div></td> <td height="25" colspan="3" bgcolor="#FFFFFF"><div align="left"><input name="dz" type="text" name="Addr_GB" value="<?=$uinfo['Province_GB']?><?=$uinfo['City_GB']?><?=$uinfo['Addr_GB']?>" class="inputcss" id="dz"  size="25"> </div></td> </tr> <tr> <td height="25" bgcolor="#FFFFFF"><div align="center">邮政编码:</div></td> <td height="25" colspan="3" bgcolor="#FFFFFF"><div align="left"><input type="text" name="PostCode" size="25" value="<?=$uinfo['PostCode']?>" class="inputcss" ></div></td> </tr> <tr> <td height="25" bgcolor="#FFFFFF"><div align="center">联系电话:</div></td> <td height="25" colspan="3" bgcolor="#FFFFFF"><div align="left"><input type="text" name="Tel" size="25" class="inputcss" value="<?=$uinfo['Tel']?>"></div></td> </tr> <tr> <td height="25" bgcolor="#FFFFFF"><div align="center">电子邮箱:</div></td> <td height="25" colspan="3" bgcolor="#FFFFFF"><div align="left"><input type="text" name="Email" size="25" class="inputcss"  value="<?=$uinfo['Email']?>" ></div></td> </tr> <tr> <td height="25" bgcolor="#FFFFFF"><div align="center">送货方式:</div></td> <td height="25" colspan="3" bgcolor="#FFFFFF"><div align="left"> <select name="shff" id="shff">  <option selected value="虚拟发货">虚拟发货</option>  <option  value="普通平邮">普通平邮</option>  <option value="特快专递">特快专递</option>  <option value="送货上门">送货上门</option>   <option value="E-mail">E-mail</option>      </select></div></td> </tr> <tr> <td height="25" bgcolor="#FFFFFF"><div align="center">支付方式:</div></td> <td height="25" colspan="3" bgcolor="#FFFFFF"><div align="left"> <select name="zfff" id="zfff">   <option selected value="网上支付">网上支付</option>  <option  value="银行汇款">银行汇款</option> </select> </div></td> </tr> <tr> <td height="100" bgcolor="#FFFFFF"><div align="center">简单留言:</div></td> <td height="100" colspan="3" bgcolor="#FFFFFF"><div align="left"> <textarea name="ly" cols="60" rows="4" class="inputcss" style="background-color:#fff;border:1px solid #ccc " ></textarea></div></td> </tr> <tr style=""> <td height="45" colspan="4" bgcolor="#FFFFFF"><div align="center"><input type="submit"  value="提交订单" class="button yahei bg4 buttoncss"> <a href="gouwu1.php" > [Back]</a> </div></td> </tr>   </form>           </tr></table>	</div>	</div>	<div class="bx-b"><div class="bx-b2"></div></div></div></div></body></html><!--<?php if($_GET['dingdanhao']!="")  {  $dd=$_GET['dingdanhao'];        $array=explode("@",$_SESSION['producelist']);  $sum=count($array)*20+260;    echo" <script language='javascript'>"; echo" window.open('showdd.php?dd='+'".$dd."','newframe','top=150,left=200,width=600,height=".$sum.",menubar=no,toolbar=no,location=no,scrollbars=no,status=no ')"; echo "</script>";  }?>-->

4、确认定单,并写入数据库,定单表和产品购买表双记录修改。


<?php
session_start();
require_once("../common/init.php");
require_once("../user/security.inc.php");
$web=get_web();
$sqls="select * from users where UserName='$_SESSION[User_S]' and user='$web'";
$info=$db->getdata($sqls);
$fIDProd=$_SESSION['producelist'];


$Num=$_SESSION['quatity'];


 $arrayNum=explode("@",$_SESSION['quatity']);
      $Num=0;
      for($i=0;$i<count($arrayNum);$i++)
      {
          $Num+=intval($arrayNum[$i]);
      }






$Contact_GB=$_POST['Contact_GB'];
$sex=$_POST['sex'];
$Addr_GB=$_POST['Addr_GB'];
$PostCode=$_POST['PostCode'];
$Tel=$_POST['Tel'];
$Email=$_POST['Email'];
$wuliu=$_POST['shff'];
$payment=$_POST['zfff'];
if(trim($_POST['ly'])=="")
{
$About="";
}
else
{
 $About=$_POST['ly'];
}
$UserName=$_SESSION['User_S'];
$dtCreate=date("Y-m-j H:i:s");
 //$dtExpiry=DATE_ADD(now(),INTERVAL $iYear YEAR)//SQL代码
$iStatus=0;
$Amount=$_SESSION["total"];
$array=explode("@",$_SESSION['producelist']);
$arrayquatity=explode("@",$_SESSION['quatity']);
//var_dump($array);
     $IDHost=array();
          for($i=0;$i<count($array)-1;$i++)
          {
             


$sql="insert into host set UserName='$_SESSION[User_S]',fIDProd='{$array[$i]}',user='$web',Num={$arrayquatity[$i]},".
     
"dtCreate=now(),iStatus='0',dtExpiry=DATE_ADD(now(),INTERVAL $arrayquatity[$i] YEAR)";
$db->query($sql);
$IDHost[$i]=$db->insert_id();
          
                 
            }   

   $IDHosts=implode("|",$IDHost);


$IDProduct=implode("|",explode("@",$_SESSION['producelist']));
 $IDProduct=substr( $IDProduct, 0, -1); 






$oOrder = Order::AddOrderPL($IDProduct,$IDHosts,0,$About,1,$Num,"",1,$Amount,$Contact_GB,$sex,$Addr_GB,$PostCode,$Tel,$Email,$wuliu,$payment);
$display=($_CFG[PayOnline]==1)?"":"none";


$OrderID=$oOrder['OrderID'];
header("location:/user/onlinepay.php?Amount={$Amount}&OrderID=$OrderID");      
?>
5、后台定单管理。


推荐阅读
交友系统,红娘系统,PHP交友网站,聊天交友脱单

交友系统,红娘系统,PHP交友网站,聊天交友脱单

2026-07-05

本系统是一套基于 ThinkPHP 8 + Workerman 架构的高性能交友平台源码,覆盖从「用户注册认证」到「互动交友」再到「增值变现」的完整闭环。

交友婚介系统源码-采用TP8开发+在线聊天,正版软件单身经济

交友婚介系统源码-采用TP8开发+在线聊天,正版软件单身经济

2026-06-21

基于 ThinkPHP 6 + MySQL + Workerman 的全栈婚恋交友平台,支持 PC(SEO 优化)、小程序/App(uni-app 二期),集成 AI 智能匹配、AI 快速回复、AI

AI短视频生成平台源码火爆上线:多平台API接入,开启智能创作新纪元

AI短视频生成平台源码火爆上线:多平台API接入,开启智能创作新纪元

2026-03-28

一款集多平台API接入、VEO3与SORO2视频生成、图片生成及大语言模型于一体的AI短视频生成平台源码正式发布,为开发者与企业提供一站式智能创作解决方案。

宝塔服务器智能防火墙NGINX v11.4 -抗 CC攻击,扫描

宝塔服务器智能防火墙NGINX v11.4 -抗 CC攻击,扫描

2026-03-10

还在为服务器被攻击而彻夜难眠?一劳永逸,免费终身 1. IP行为分析 - 5分钟内识别异常请求 2. UA指纹识别 - 区分搜索引擎、普通用户、恶意工具 3. 端口扫描检测 - 发现即封禁,不留情面

同一套程序同一站点绑定多域名SSL证书的实现方案

同一套程序同一站点绑定多域名SSL证书的实现方案

2026-03-06

本文介绍如何为同一套程序、同一站点绑定多个域名并配置独立的SSL证书,通过PHP执行Nginx重载命令,实现多站点独立server配置的自动化管理。

巅云门户自助建站系统v8.0

重庆楚捷科技有限公司 一佰互联网站制作 @ 2022 版权所有    ICP备:渝ICP备16004678号 php培训 自助建站

电话:18581389571(微信)

QQ:2522407257(源码购买)

QQ:2390217049(建网站)

网址:www.yinxi.net

客服微信 关注巅云建站

巅云建站

185-8138-9571

服务时间:周一至周日 8:30-18:00

公安备案 渝公网安备 50010102000487号

营业执照

世界从来不缺少好的程序员,而稀缺的是优秀的软件架构思想者