以下是本站的两部视频教程,欢迎观看
课程简介:《JS和jQuery开发购物车教程》通过JavaScript和jQuery两种方式实现购物车功能。
课程简介:《JavaScript实现购物车》主要目的是制作一个简易的购物车,让大家在制作的过程中了解购物车的原理
今天在练习购物车以及提交订单,写的有点头晕,顺便也整理一下,这个购物车相对来说比较简单,用于短暂存储,并没有存储到数据库,
购物车对于爱网购的人来说简直是熟悉的不能再熟悉了,在写购物车之前,我们首先要构思一下,我们需要先从数据库中调出一张表格,这里
我用的是fruit表,其次是登录表,我用的是login表,用来调用户名和密码的,所有的都准备好之后就要考虑放入购物车是会有三种情况的:
第一种情况:购物车里面什么都没有
第二种情况:购物车里面已经有此产品了,再次加入 这种情况下考虑到的是 数量要+1
第三种情况:购物车里面有产品了,但是没有此产品
下图是用到的数据库表格:
下面是登录页面的代码:
<body><form action="chuli.php" method="post"> <p style="margin-left: 500px; margin-top: 200px; height: 250px; width: 250px; border: 1px dashed black"> <p style="margin-left: 100px; "><h3>登录</h3></p> <p style="margin-top: 20px">用户名:<input type="text" name="uid"/></p><br/> <p>密 码:<input type="password" name="pwd"/></p><br/> <p style="margin-left: 180px"><input type="submit" value="登录"/></p> </p></form></body>
登录页面写好之后,需要进入处理页面,从数据库中调出用户名和密码:
<?php session_start(); //开启session 必须要写到第一行 header("Content-type:text/html;charset=utf-8"); $uid=$_POST["uid"]; //从登录页面获取到用户名和密码 $pwd=$_POST["pwd"]; include("DADB.class.php"); $db=new DADB(); $sql="select password from login where username='{$uid}'"; $arr=$db->Query($sql); if($arr[0][0]==$pwd && !empty($pwd)) //判断所填写的密码和取到的密码是一样的,而且密码不能为空 { $_SESSION["uid"]=$uid; header("location:main.php"); } else { echo"登录失败"; }
登录页面如图所示:
下面要进入主页面了,从数据库中把所有的水果信息调出来,然后我们再来实现加入购物车这一项功能
<h2>大苹果购物网</h2> <?php session_start(); include("DADB.class.php"); $db=new DADB(); ?> <table border="1" width="100%" cellpadding="0" cellspacing="0"> <tr> <td>代号</td> <td>水果名称</td> <td>水果价格</td> <td>原产地</td> <td>货架</td> <td>库存量</td> <td></td> </tr> <?php $uid=$_SESSION["uid"]; $sql="select * from fruit"; $arr=$db->Query($sql); foreach($arr as $v) { echo"<tr> <td>{$v[0]}</td> // 从数据库调出我们所需要的内容 <td>{$v[1]}</td> <td>{$v[2]}</td> <td>{$v[3]}</td> <td>{$v[4]}</td> <td>{$v[5]}</td> <td><a href='add.php?ids={$v[0]}'>购买</a></td> //这里的购买相当于添加购物车的功能 </tr>"; } ?> <?php //这里显示的是 购物车有多少产品,和产品的总价格 $ann=array(); if(!empty($_SESSION["gwc"])) { $ann=$_SESSION["gwc"]; } $zhonglei = count($ann); $sum=0; foreach($ann as $k) { $sql1="select price from fruit where ids='{$v[0]}'"; $danjia=$db->Query($sql1); foreach($danjia as $n) { $sum=$sum + $n[0]*$k[1]; } } echo"购物车有<mark>{$zhonglei}</mark>种商品,总价格为<mark>{$sum}</mark>元"; ?> </table> <p> <a href="gouwuche.php">查看购物车</a> <a href="main.php">浏览商品</a> <a href="zhanghu.php">查看账户</a> </p> </body>
主页面如图所示:
最重要的就是添加购物车页面了
<?php session_start(); $ids = $_GET["ids"]; if(empty($_SESSION["gwc"])) { //1.购物车是空的,第一次点击添加购物车 $arr = array( array($ids,1) ); $_SESSION["gwc"]=$arr; } else { //不是第一次点击 //判断购物车中是否存在该商品 $arr = $_SESSION["gwc"]; //先存一下 $chuxian = false; foreach($arr as $v) { if($v[0]==$ids) { $chuxian = true; } } if($chuxian) { //3.如果购物车中有该商品 for($i=0;$i<count($arr);$i++) { if($arr[$i][0]==$ids) { $arr[$i][1]+=1; } } $_SESSION["gwc"] = $arr; } else { //2.如果购物车中没有该商品 $asg = array($ids,1); $arr[] = $asg; $_SESSION["gwc"] = $arr; } } header("location:gouwuche.php");
这样就可以显示到购物车的页面了,购物车的页面代码如下:
<h2>购物车中有以下商品:</h2> <table cellpadding="0" cellspacing="0" border="1" width="100%"> <tr> <td>商品名称</td> <td>商品单价</td> <td>购买数量</td> <td></td> </tr> <?php session_start(); //$uid=$_SESSION["uid"]; $arr=array(); if(!empty($_SESSION["gwc"])) { $arr=$_SESSION["gwc"]; } include("DADB.class.php"); $db=new DADB(); foreach($arr as $v) { global $db; $sql="select * from fruit where ids='{$v[0]}'"; $att=$db -> Query($sql,1); foreach($att as $n) { echo"<tr> <td>{$n[1]}</td> <td>{$n[2]}</td> <td>{$v[1]}</td> <td><a href='shanchu.php?ids={$v[0]}'>删除</a></td> </tr>";} } ?> </table> <p> <a href="gouwuche.php">查看购物车</a> <a href="main.php">浏览商品</a> <a href="zhanghu.php">查看账户</a> </p> 14 15 </body>
这样进入购物车页面显示如图所示:[object Object]
这只是比较简单的加入购物车,但是中间还有很多环节没有完善好,比如说加入购物车后,数据库中的产品数量减少、购物车中产品的删除等操作还没有做,后续再补上,现在脑子有点乱。。。
以上就是php 实现简单加入购物车的图文代码详细介绍的内容,更多相关内容请关注PHP中文网(www.php.cn)!
相关文章:

负载均衡会影响会话管理,但可以通过会话复制、会话粘性和集中式会话存储解决。1.会话复制在服务器间复制会话数据。2.会话粘性将用户请求定向到同一服务器。3.集中式会话存储使用独立服务器如Redis存储会话数据,确保数据共享。

Sessionlockingisatechniqueusedtoensureauser'ssessionremainsexclusivetooneuseratatime.Itiscrucialforpreventingdatacorruptionandsecuritybreachesinmulti-userapplications.Sessionlockingisimplementedusingserver-sidelockingmechanisms,suchasReentrantLockinJ

PHP会话的替代方案包括Cookies、Token-basedAuthentication、Database-basedSessions和Redis/Memcached。1.Cookies通过在客户端存储数据来管理会话,简单但安全性低。2.Token-basedAuthentication使用令牌验证用户,安全性高但需额外逻辑。3.Database-basedSessions将数据存储在数据库中,扩展性好但可能影响性能。4.Redis/Memcached使用分布式缓存提高性能和扩展性,但需额外配

Sessionhijacking是指攻击者通过获取用户的sessionID来冒充用户。防范方法包括:1)使用HTTPS加密通信;2)验证sessionID的来源;3)使用安全的sessionID生成算法;4)定期更新sessionID。

本文比较了PHP和ASP.NET,重点是它们对大规模Web应用程序,性能差异和安全功能的适用性。两者对于大型项目都是可行的,但是PHP是开源和无关的,而ASP.NET,


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SublimeText3汉化版
中文版,非常好用

WebStorm Mac版
好用的JavaScript开发工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)