![电子商务网站建设与实践(第5版)- 项目八_第1页](http://file4.renrendoc.com/view/3fe00ec3dd88e6b7d9a2398ef11e9070/3fe00ec3dd88e6b7d9a2398ef11e90701.gif)
![电子商务网站建设与实践(第5版)- 项目八_第2页](http://file4.renrendoc.com/view/3fe00ec3dd88e6b7d9a2398ef11e9070/3fe00ec3dd88e6b7d9a2398ef11e90702.gif)
![电子商务网站建设与实践(第5版)- 项目八_第3页](http://file4.renrendoc.com/view/3fe00ec3dd88e6b7d9a2398ef11e9070/3fe00ec3dd88e6b7d9a2398ef11e90703.gif)
![电子商务网站建设与实践(第5版)- 项目八_第4页](http://file4.renrendoc.com/view/3fe00ec3dd88e6b7d9a2398ef11e9070/3fe00ec3dd88e6b7d9a2398ef11e90704.gif)
![电子商务网站建设与实践(第5版)- 项目八_第5页](http://file4.renrendoc.com/view/3fe00ec3dd88e6b7d9a2398ef11e9070/3fe00ec3dd88e6b7d9a2398ef11e90705.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子商务网站建设与实践(第5版)作者:梁露刘健孙刚凝王涛鹏陈星野钟小平主审:赵春利本项目将以循序渐进的方式示范如何建立“冬藏”网络书店,引领读者逐步了解电子商务网站的建设及其基本运作过程。“冬藏”网络书店是通过PHP程序实现的电子商务网站。本项目的例子主要使用DreamweaverCS2015软件开发,并在WAMP平台上完成测试。项目八综合实例项目八综合实例【知识目标】1.进一步熟悉电子商务网站建设流程;2.进一步了解网站开发;3.熟悉电子商务网站的业务架构。项目八综合实例【技能目标】1.掌握电子商务网站的规划;2.掌握电子商务网站前后台页面的基本设计;3.熟悉电子商务网站的完整实施过程。项目八综合实例【预备知识】1.熟悉HTML主要标签的功能和用法;2.熟悉CSS的功能和使用方法;3.熟悉Dreamweaver软件的功能和网页制作方法;4.具备MySQL数据库知识;5.掌握PHP编程语言。项目八综合实例8.1规划和建设“冬藏”网络书店8.1.1系统商务分析电子商务利用便捷、高效和低成本的IT,在Internet上开展买卖交易的各种商业活动,通过新型商业运作模式,实现网上选购、在线支付等电子交易活动。项目八综合实例1.需求分析(1)企业需求企业为了充分利用网络技术,解决传统商务模式下的一些弊端,实现无时空限制的、高效的商务模式,纷纷发展网上购物系统。(2)市场需求越来越多的消费者开始倾向利用网络获得商品和服务,这极大地促进了电子商务的发展。而网络技术的发展为人们的需求提供了便捷的服务平台。对于消费类网上购物系统而言,无论是企业需求还是市场需求,总归都是来自网上客户的需求。8.1规划和建设“冬藏”网络书店8.1.1系统商务分析电子商务利用便捷、高效和低成本的IT,在Internet上开展买卖交易的各种商业活动,通过新型商业运作模式,实现网上选购、在线支付等电子交易活动。项目八综合实例2.市场分析(1)市场环境良好的地区经济环境、政府的支持及所属地区设施的完备程度都对电子商务有影响,要综合这些因素,确定市场环境是否有利于网上购物系统的建设。(2)客户分析客户可以是企业或个人,需要分析客户的受教育程度和网民结构等。8.1规划和建设“冬藏”网络书店8.1.2系统规划设计
项目八综合实例1.确定商务模式确定商务模式包括确定总体商务模式与网上服务等模式。2.制订营销计划制订营销计划主要是制订具体的网上交易计划。3.确定系统构成确定系统构成包括确定系统功能模块或子系统。4.确定系统流程确定系统流程包括确定用户从登录到购物结账、从交易产生到处理完毕等流程的设计。8.1规划和建设“冬藏”网络书店8.1.3网站建设规划设计建立一个网络书店系统,必须规划系统的设计目的和设计结构,选取合适的软件环境、编辑工具和测试运行环境,而且需要规划好建设网络书店系统的具体步骤。项目八综合实例1.设计网络书店的目的●宣传企业形象,提高企业知名度,增强市场竞争力。●销售图书商品。●提供相关文化活动信息。8.1规划和建设“冬藏”网络书店8.1.3网站建设规划设计建立一个网络书店系统,必须规划系统的设计目的和设计结构,选取合适的软件环境、编辑工具和测试运行环境,而且需要规划好建设网络书店系统的具体步骤。项目八综合实例2.网站结构的规划
8.1规划和建设“冬藏”网络书店8.1.3网站建设规划设计建立一个网络书店系统,必须规划系统的设计目的和设计结构,选取合适的软件环境、编辑工具和测试运行环境,而且需要规划好建设网络书店系统的具体步骤。项目八综合实例3.选择Web网站开发工具和后台支撑系统●操作系统——WindowsServer2016
●Web服务器——Apache
●Web应用开发语言——PHP
●后台数据库系统——MySQL●网页编辑工具——DreamweaverCS20158.1规划和建设“冬藏”网络书店8.1.3网站建设规划设计建立一个网络书店系统,必须规划系统的设计目的和设计结构,选取合适的软件环境、编辑工具和测试运行环境,而且需要规划好建设网络书店系统的具体步骤。项目八综合实例4.网络书店系统的测试运行环境Web服务器的主要作用是提供Internet上的信息服务。架设服务器,首先要选择服务器的操作系统和Web服务器软件。Web服务器架设有多种方案,方案的选择主要取决于服务器的操作系统和Web服务器软件。在确定操作系统时,要根据服务器设备的硬件情况与系统要求而定。
考虑到WindowsServer操作系统便于部署、管理和使用等优点,本实例的网站测试运行环境选择WindowsServer2016操作系统,并在该系统上部署AMP方案来运行网站。8.1规划和建设“冬藏”网络书店8.1.3网站建设规划设计建立一个网络书店系统,必须规划系统的设计目的和设计结构,选取合适的软件环境、编辑工具和测试运行环境,而且需要规划好建设网络书店系统的具体步骤。项目八综合实例5.规划网络书店实施的具体步骤①安装操作系统和Web应用运行环境,安装好相应的应用软件和开发平台。②建立一个简单的网络书店。③建立数据库,实现网站有关信息的动态更新。④为适应网络书店的发展,逐步实现和增强规划的各个功能模块,使网络书店成为一个比较完善的电子商务网站。8.2建设一个简易的网络书店项目八综合实例8.2建设一个简易的网络书店8.2.1网站的主题网站的主题将直接影响网络书店网站的整体设计。即将建立的网络书店主要经营与传统文化有关的图书。网站的主题要体现网络书店的经营范围,突出传统文化的特色。项目八综合实例8.2建设一个简易的网络书店8.2.2网站的名称
网站的名称也是CIS设计的重要内容,而且是关键因素。网站名称是否合适,对网站的形象和推广有很大影响。原则上,网站的名称应当与经营范围相适应,而且网站的名称要容易记忆,重要的是名称要突出网站特色。
根据书店的经营范围描述,书店的客户主要是青少年,在经营的同时面向青少年推广我国传统文化。青少年的个人涵养也要着眼于“藏”,本书店特意取名为“冬藏”网络书店。项目八综合实例8.2建设一个简易的网络书店8.2.3网站的布局与结构
为便于访客能够及时、快捷地找到所需信息和所需购买的物品,需要合理设计网站结构与布局。网站前台首页总体设计为框架式网页,有网页头部、网站导航、焦点图、热销排行、新书推荐等部分,其他网页都超链接于导航区,由此实现静态网页和动态网页的融合商品大类(频道)国学党史文学教育医学科技项目八综合实例8.2建设一个简易的网络书店8.2.4订购和付款方式
实际应用中的网上商城付款方式在线支付货到付款款到发货由于未实际接入电子商务交易平台,“冬藏”网络书店简单地模拟网上支付。项目八综合实例8.3设计后台数据库8.3.1创建数据库dongcang
本实例将使用PHP连接MySQL数据库技术,自动生成网站书目展示页的内容,用PHP程序实现网站书目展示页的动态更新。
本书实例提供“冬藏”的后台数据库dongcang。
在设计数据表结构之前,首先要创建一个dongcang数据库。项目八综合实例8.3设计后台数据库8.3.2创建表
数据库dongcang包括6个表书目信息表tb_books书目类别表tb_class主订单信息表tb_order子订单信息表tb_suborder会员(客户)信息表tb_user管理员信息表tb_admin项目八综合实例8.4会员注册与登录的实现8.4.1会员注册
项目八综合实例1.概述
8.4会员注册与登录的实现8.4.1会员注册
项目八综合实例2.页面实现(1)创建提供会员注册界面的PHP页面文件register.php,提供输入用户信息的HTML表单,包括5个文本框和2个按钮。
<TR><TDcolSpan=2height=21> 请您填写以下表格进行注册。</TD></TR><TR><TDwidth=110bgColor=#eff8e7height=21><DIValign=center>账号名:</DIV></TD><TDwidth=600bgColor=#eff8e7height=21><inputtype="text"name="username"id="username"size="40"placeholder="请输入账号名,账号名不接受中文"data-required="required"autocomplete="off"><TR>8.4会员注册与登录的实现8.4.1会员注册
项目八综合实例2.页面实现(2)加入JavaScript脚本,在其中定义用于校验用户输入的checkRegister函数。
functioncheckRegister(){if(document.getElementById("username").value.trim()==""){alert("必须输入账号名称!");returnfalse;}if(/^[\u4e00-\u9fa5]+$/.test(document.getElementById("username").value.trim())){alert("账号不能输入汉字!");returnfalse;}8.4会员注册与登录的实现8.4.1会员注册
项目八综合实例3.功能实现(1)完整的用户注册功能可以通过PHP文件实现,也就是用户提交的表单由其所在页面接收和处理。这里在register.php文件中添加代码,用于接收和处理用户提交的数据,并在会员信息表tb_user中增加一条新的用户注册记录。
//查询用户账户、联系电话、电子邮箱是否有任意一个匹配
$sql=mysqli_query($conn,"select*fromtb_userwherename='".$username."'ordianhua='".$username."'oremail='".$username."'");$info=mysqli_fetch_array($sql);//将查询结果返回到数组中
if($info==false){//如果查询结果为空
echo"<scriptlanguage='javascript'>alert('不存在会员账户!');history.back();</script>";//弹出提示信息
}else{if($info['pwd']==$passwd){//如果用户密码输入正确
session_start();//启动session8.4会员注册与登录的实现8.4.1会员注册
项目八综合实例3.功能实现(1)完整的用户注册功能可以通过PHP文件实现,也就是用户提交的表单由其所在页面接收和处理。这里在register.php文件中添加代码,用于接收和处理用户提交的数据,并在会员信息表tb_user中增加一条新的用户注册记录。
$_SESSION['username']=$info['name'];//将登录用户名存储在Session变量中
if(isset($_SESSION['userurl'])){//可以返回到要求登录的页面或首页
$url=$_SESSION['userurl'];}else{$url="index.html";}echo"<metahttp-equiv=\"refresh\"content=\"1.0;url=$url\">";//1s后跳转
}else{echo"<scriptlanguage='javascript'>alert('密码输入错误!');history.back();</script>";//弹出提示信息
}}8.4会员注册与登录的实现8.4.1会员注册
项目八综合实例3.功能实现(2)实现注册功能需要操作数据库。本项目采用MySQLi扩展连接MySQL数据库,使用一个专门的PHP文件(本例为conn.php)来定义数据库连接。
$conn=mysqli_connect("localhost","root","root","dongcang")ordie("数据库服务器连接错误".mysqli_connect_error($conn));mysqli_query($conn,"setcharactersetutf8");mysqli_query($conn,"setnamesutf8");8.4会员注册与登录的实现8.4.2会员登录
项目八综合实例1.概述
8.4会员注册与登录的实现8.4.2会员登录
项目八综合实例2.页面实现(1)创建提供会员登录页面的PHP页面文件login.php,提供输入登录信息的HTML表单,创建2个文本框和2个按钮。
<FORMaction="#"method="post"onSubmit="returncheckLogin();"><TABLEwidth=300align="center"border=0><TR><TDvAlign=topalign="left"width=50>账号:</TD><TD><inputtype="text"name="username"id="username"placeholder="请输账号/手机号/邮箱"data-required="required"autocomplete="off"></TD></TR>8.4会员注册与登录的实现8.4.1会员注册
项目八综合实例2.页面实现(2)提供用于客户端校验登录信息的JavaScript函数checkLogin的定义。
functioncheckLogin(){if(document.getElementById("username").value.trim()==""){alert("必须输入账号名称!");returnfalse;}if(/^[\u4e00-\u9fa5]+$/.test(document.getElementById("username").value)){alert("账号不能输入汉字!");returnfalse;}8.4会员注册与登录的实现8.4.2会员登录
项目八综合实例3.功能实现使用单独的login.php文件处理用户登录请求。
$info=mysqli_fetch_array($sql);//将查询结果返回到数组中
if($info==false){//如果查询结果为空
echo"<scriptlanguage='javascript'>alert('不存在会员账户!');history.back();</script>";//弹出提示信息
}else{if($info['pwd']==$passwd){//如果用户密码输入正确
session_start();//启动session$_SESSION['username']=$info['name'];//将登录用户名存储在Session变量中8.4会员注册与登录的实现8.4.2会员登录
项目八综合实例3.功能实现使用单独的login.php文件处理用户登录请求。
if(isset($_SESSION['userurl'])){//可以返回到要求登录的页面或首页
$url=$_SESSION['userurl'];}else{$url="index.html";}echo"<metahttp-equiv=\"refresh\"content=\"1.0;url=$url\">";//1s后跳转
}else{echo"<scriptlanguage='javascript'>alert('密码输入错误!');history.back();</script>";//弹出提示信息
}}8.5书目信息的动态更新8.5.1概述
项目八综合实例8.5书目信息的动态更新8.5.2页面的实现创建PHP页面文件listbooks.php,并在其中创建HTML表格,用数据库中表的数据填充表格,以便格式化数据表或查询的结果。项目八综合实例<TR><TD><?phpecho$info['id'];?></TD><TD><?phpecho$info['classname'];?></TD><TD><?phpecho$info['mingcheng'];?></TD><TD><?phpecho$info['dingjia'];?></TD><TD><?phpecho$info['zuozhe'];?></TD><TD><?phpecho$info['chubanjg'];?></TD><TD><?phpecho$info['chubansj'];?></TD><TD><?phpecho$info['jianjie'];?></TD></TR>8.5书目信息的动态更新8.5.3功能的实现
listbooks.php页面文件的主要功能是使用PHP程序查询数据库内容并以表格的形式输出。本例具体实现思路是,首先连接数据库,然后定义SQL查询语句,执行该语句将查询结果返回到数组中。项目八综合实例<?phpinclude("conn.php");//包含数据库连接文件$sql=mysqli_query($conn,"select*,(selectclassnamefromtb_classwhereid=classid)ASclassnamefromtb_bookslimit10");//执行查询语句$info=mysqli_fetch_array($sql);//将查询结果返回到数组中?>8.6书店库房管理8.6.1增加书目信息项目八综合实例管理员登录首先要进行管理员登录,只有登录成功后,才能进行增加书目信息的操作。实现管理员登录的页面文件是adminlogin.php。8.6书店库房管理8.6.1增加书目信息项目八综合实例1.概述先建立书目信息添加页面,本例先展示添加的5条最新的记录,然后提供HTML表单用于输入数据。
8.6书店库房管理8.6.1增加书目信息项目八综合实例2.页面的实现创建用于添加书目信息的PHP页面文件addbooks.php。
<tr><tdnowrap>书名:</td><td><inputtype="text"id="mingcheng"name="mingcheng"/></td></tr><tr><tdnowrap>单价:</td><td><inputtype="text"id="dingjia"name="dingjia"/></td></tr>8.6书店库房管理8.6.1增加书目信息项目八综合实例3.功能实现输入的表单数据会被提交给相应页面,由PHP代码接收并处理,在tb_books表中增加一条书目记录。
functiongetname($extname){//定义获取上传文件路径和名称的函数
$dir="upload/";//定义上传目录
if(!is_dir($dir)){//如果目录不存在
mkdir($dir,0777);//创建目录
}$name=uniqid().".".$extname;//定义上传后的文件名称
return$dir.$name;//返回上传文件路径和名称
}$extname=strtolower(substr($_FILES['upfile']['name'],(strrpos($_FILES['upfile']['name'],'.')+1)));//获取上传文件后缀名
$uploadfile=getname($extname);//执行函数8.6书店库房管理8.6.1增加书目信息项目八综合实例3.功能实现输入的表单数据会被提交给相应页面,由PHP代码接收并处理,在tb_books表中增加一条书目记录。
echo"<script>alert('图片".$uploadfile."添加成功!')</script>";move_uploaded_file($_FILES['upfile']['tmp_name'],$uploadfile);//执行文件上传操作
if(trim($_FILES['upfile']['name']=="")){//如果上传文件为空
$uploadfile="";//定义插入数据表的文件路径
}$jianjie=$_POST['jianjie'];mysqli_query($conn,"insertintotb_books(mingcheng,jianjie,shangjiasj,zuozhe,tupian,classid,dingjia,chubanjg,chubansj)values('$mingcheng','$jianjie','$shangjiasj','$zuozhe','$uploadfile','$classid','$dingjia','$chubanjg','$chubansj')");//执行更新语句8.6书店库房管理8.6.2查询书目信息项目八综合实例1.概述
8.6书店库房管理8.6.2查询书目信息项目八综合实例2.页面的实现实现书目信息查询的页面文件是searchbooks.php。
<?php$sql1=mysqli_query($conn,"select*fromtb_classorderbyid");//获取类别名称
while($info1=mysqli_fetch_array($sql1)){if($info1['id']==$classid){?><optionvalue=<?phpecho$info1['id'];?>selected="selected"><?phpecho$info1['classname'];?></option><?php}else{?><optionvalue=<?phpecho$info1['id'];?>><?phpecho$info1['classname'];?></option><?php}}//对查询结果执行while循环
?>8.6书店库房管理8.6.2查询书目信息项目八综合实例2.页面的实现书目查询结果页面设计。
<?phpdo{?><TR><TD><?phpecho$info['id'];?></TD><TD><?phpecho$info['classname'];?></TD><TD><?phpecho$info['mingcheng'];?></TD><TD><?phpecho$info['dingjia'];?></TD><TD><?phpecho$info['zuozhe'];?></TD><TD><?phpecho$info['chubanjg'];?></TD><TD><?phpecho$info['chubansj'];?></TD><TD><?phpecho$info['jianjie'];?></TD></TR><?php}while($info=mysqli_fetch_array($sql));//每执行一次,指针向后自动移动一次?>8.6书店库房管理8.6.3修改书目信息项目八综合实例1.概述
8.6书店库房管理8.6.3修改书目信息项目八综合实例2.页面的实现创建书目信息更改(修改、删除)页面文件chgbooks.php,加入指向书目编辑页面文件editbooks.php的链接,并将当前记录的id传递给该编辑页面。
<TD><ahref="editbooks.php?id=<?phpecho$info['id'];?>"target="_blank">修改</a> <ahref="delbooks.php?id=<?phpecho$info['id'];?>">删除</a></TD>8.6书店库房管理8.6.3修改书目信息项目八综合实例2.页面的实现创建书目信息编辑页面文件editbooks.php。
<TR><TDnowrap>图片:</TD><TD><inputtype="hidden"name="MAX_FILE_SIZE"value="2000000"><inputtype="file"id="upfile"name="upfile"></TD></TR><TR><TDcolspan="2"style="padding-top:15"align="center"><inputtype="submit"value="确认修改"/><inputtype="reset"value="取消修改"/></TD></TR>8.6书店库房管理8.6.3修改书目信息项目八综合实例3.功能实现将表单数据提交给对应页面的PHP代码处理。
$sql=mysqli_query($conn,"select*fromtb_bookswhereid=".$id."");//执行查询语句
$info=mysqli_fetch_array($sql);//将查询结果返回到数组中
@unlink($info['tupian']);//删除图书对应的图片
$extname=sTRtolower(subsTR($_FILES['upfile']['name'],(sTRrpos($_FILES['upfile']['name'],'.')+1)));//获取上传文件后缀名
$uploadfile=getname($extname);//执行函数获取上传文件路径和名称
move_uploaded_file($_FILES['upfile']['tmp_name'],$uploadfile);//执行文件上传操作
mysqli_query($conn,"updatetb_bookssetmingcheng='$mingcheng',jianjie='$jianjie',shangjiasj='$shangjiasj',zuozhe='$zuozhe',tupian='$uploadfile',classid='$classid',dingjia='$dingjia',zhekoujia='$zhekoujia',chubanjg='$chubanjg',chubansj='$chubansj',shuliang='$shuliang'whereid=".$id);//执行更新语句
}else{mysqli_query($conn,"updatetb_bookssetmingcheng='$mingcheng',jianjie='$jianjie',shangjiasj='$shangjiasj',zuozhe='$zuozhe',classid='$classid',dingjia='$dingjia',chubanjg='$chubanjg',chubansj='$chubansj'whereid=".$id);//执行更新语句
}8.6书店库房管理8.6.4删除书目信息项目八综合实例删除操作通过单独的PHP页面文件delbooks.php实现,无须专门的页面,只需通过PHP代码输出提示信息即可。
$sql1=mysqli_query($conn,"select*fromtb_suborder");//执行查询语句while($info1=mysqli_fetch_array($sql1)){//将查询结果循环返回到数组中
if($info1['bookid']==$id){//如果订单信息表中bookid字段的值等于图书的id值
$row=array();//定义空数组
$orderid=$info1['orderid'];//获取订单信息表中orderid字段的值
mysqli_query($conn,"deletefromtb_suborderwhereid='".$info1['id']."'");//执行删除操作
$sql2=mysqli_query($conn,"selectorderidfromtb_suborder");//执行查询操作
while($info2=mysqli_fetch_array($sql2)){//将查询结果循环返回到数组中
$row[]=$info2['orderid'];//将查询结果中orderid字段的值存储在数组中
}if(!in_array($orderid,$row)){//如果$orderid的值不在数组$row中
mysqli_query($conn,"deletefromtb_orderwhereid='".$orderid."'");//执行删除操作
}}}mysqli_query($conn,"deletefromtb_bookswhereid='".$id."'");//执行删除操作8.7实时订单处理8.7.1实时订单处理要解决的问题项目八综合实例①订单数据不是通过格式文本返回的,而是直接写到订单数据表中的,必须记录登录用户的用户名。②将用户信息传递到实现后台处理的PHP程序中。③订购时,将订购信息实时写进购物车(用户名暂时存储在会话中),并显示订购信息给客户。④当用户确认完订购信息无误后,PHP程序将根据用户名查找订单信息表需要的相关信息,这些信息将与订购数量同时写到订单数据表中。⑤允许书店工作人员查询和更新订单状态。⑥允许书店工作人员更新未处理的预定信息。⑦允许客户查询订单状态。8.7实时订单处理8.7.2解决问题的步骤项目八综合实例1.会员登录登录时系统用Session变量记录会员的用户名,然后在后台的程序中直接读取Session变量的内容。从添加购物车开始,之后的业务流程都要求用户登录,为此在相关网页中使用代码来跟踪用户的登录状态。if(!isset($_SESSION['username'])){//如果用户未登录
echo"<script>alert('请登录后再购物!');</script>";//提示用户登录
$_SESSION['userurl']=$_SERVER['REQUEST_URI'];//将当前页面地址存储到Session变量
echo'<scriptlanguage=javascript>window.location.href="login.php"</script>';//跳转到登录界面
exit;//退出程序
}8.7实时订单处理8.7.2解决问题的步骤项目八综合实例2.订购商品书目订购页面8.7实时订单处理8.7.2解决问题的步骤项目八综合实例2.订购商品添加购物车页面检查购物车8.7实时订单处理8.7.2解决问题的步骤项目八综合实例2.订购商品将商品添加到购购物车的页面文件是addcart.php。<TR><TDheight=30align="left">数量:<inputtype="text"maxlength="20"size="15"id="gmsl"name="gmsl"/></TD></TR><TR><TDheight=30align="center"><inputtype="submit"name="butOK"value="添加"id="butOK"Type="Submit"/></TD></TR><inputtype="hidden"name="bookid"value="<?phpecho$id;?>"/>8.7实时订单处理8.7.2解决问题的步骤项目八综合实例2.订购商品具体将商品添加而到购物车的PHP代码。$array=explode("@",isset($_SESSION['cartbooklist'])?$_SESSION['cartbooklist']:"");//将购物车中各图书id的值分割为数组
if(count($array)==1){//如果购物车中图书为空
$_SESSION['cartbooklist']=$_SESSION['cartbooklist'].$id."@";//将购买的图书id添加到Session变量中
$_SESSION['cartbookcount']=$_SESSION['cartbookcount'].$num."@";//将购买的图书数量添加到Session变量中
}if(count($array)!=1){//如果购物车中图书不为空
if(!in_array($id,$array)){//如果购买图书的id不在图书数组中
$_SESSION['cartbooklist']=$_SESSION['cartbooklist'].$id."@";//将购买的图书id添加到Session变量中
$_SESSION['cartbookcount']=$_SESSION['cartbookcount'].$num."@";//将购买的图书数量添加到Session变量中
}else{$arraycartbookcount=explode("@",$_SESSION['cartbookcount']);//将购物车中各图书数量的值分割为数组
$key=array_search($id,$array);//获取购买图书的id在图书数组中的键值
$arraycartbookcount[$key]=$arraycartbookcount[$key]+$num;//将购物车中该图书的数量进行更新
$_SESSION['cartbookcount']=implode("@",$arraycartbookcount);//将购物车中各图书数量的值重新合成为字符串
}}8.7实时订单处理8.7.2解决问题的步骤项目八综合实例2.订购商品检查购物车并显示购物车货物清单的页面文件是checkcart.php。<?php$total=0;//为变量初始化赋值
$arr=explode("@",$_SESSION['cartbooklist']);//将购物车中各图书id的值分割为数组
$arr_bookcount=explode("@",$_SESSION['cartbookcount']);//将购物车中各图书数量的值分割为数组
for($i=0;$i<count($arr)-1;$i++){//循环购物车中的图书
$id=$arr[$i];//获取图书id$num=$arr_bookcount[$i];//获取图书数量
if($id!=""){//如果图书id的值不为空
$sql=mysqli_query($conn,"select*fromtb_bookswhereid='".$id."'");//执行查询语句
$info=mysqli_fetch_array($sql);//将查询结果返回到数组中
$subtotal=$num*$info['dingjia'];//获取该图书的总价
$total+=$subtotal;//获取所有图书的总价
?>8.7实时订单处理8.7.2解决问题的步骤项目八综合实例2.订购商品删除购物车中已添加的商品,具体提交给delcart.php文件处理,完成删除处理之后,自动返回检查购物车页面。<?phpsession_start();//启动sessionif(!isset($_SESSION['username'])){//如果用户未登录
$_SESSION['userurl']=$_SERVER['REQUEST_URI'];//将当前地址存储到Session变量
echo"<script>alert('请先登录再操作购物车!');window.location.href='login.php';</script>";exit();//退出程序}else{$no=strval($_GET['no']);//获取购买图书的id值
$arrgoods=explode("@",$_SESSION['cartbooklist']);//将购物车中各图书id的值分割为数组
$arrcartbookcount=explode("@",$_SESSION['cartbookcount']);//将购物车中各图书数量的值分割为数组
unset($arrgoods[$no]);//清空购物车中图书idunset($arrcartbookcount[$no]);//清空购物车中图书数量
$_SESSION['cartbooklist']=implode("@",$arrgoods);//将购买的图书id添加到session变量中
$_SESSION['cartbookcount']=implode("@",$arrcartbookcount);//将购买的图书数量添加到session变量中
header("location:checkcart.php");//网页跳转}8.7实时订单处理8.7.2解决问题的步骤项目八综合实例3.结算购物车结算由页面文件toorder.php实现,主要核对其中订购的商品的信息,填写订购客户信息。8.7实时订单处理8.7.2解决问题的步骤项目八综合实例4.提交订单订购完成页面8.7实时订单处理8.7.2解决问题的步骤项目八综合实例4.提交订单为简化示例操作,没有将订单数据添加到订单信息表中,只是将购物结算清单中的商品信息和订购客户信息转移过来以展示订单信息。订单生成之后,需要将客户购物车中的信息删除。$insFlag=true;//插入成功标志//此处应将订单数据添加到订单数据表中,为简化实验这里不写入数据库if($insFlag==false){//如果变量$flag的值为falseecho"<script>alert('订单无效');history.back();</script>";//弹出提示信息}else{//订单数据添加成功之后需清除购物车中的数据(本例为相关的Session变量)
$_SESSION['cartbooklist']="";//清空购物车中图书id$_SESSION['cartbookcount']="";//清空购物车中图书数量}8.8更进一步的思考8.8.1改进客户服务项目八综合实例1.导读服务及时提供青少年喜闻乐见的传统文化导读服务,帮助和指导他们选择好书是很有意义的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年化验员工作总结简单版(二篇)
- 黑龙江省绥化市2024年中考化学真题【附真题答案】
- 2024年办公室文员个人工作总结常用版(四篇)
- 2024年班主任会议讲话稿样本(三篇)
- 2024年学前教育实习工作报告模版(三篇)
- 2024年银行柜员年终工作总结范例(3篇)
- 2024年班主任个人工作总结参考(二篇)
- 2024年儿科医生述职报告简单版(4篇)
- 2024年关于安全演讲稿例文(四篇)
- 2024年班干部工作总结模版(五篇)
- 《体位转移技术》课件
- 2022-2023六年级上册信息科技教案
- 质量管理体系风险和机遇应对措施及评审记录
- 《休闲体育活动策划与组织》课程标准
- 电大数据结构实验报告
- 工程建设项目全过程跟踪审计操作规范(A版)
- 人教版英语八年级下册单选100题(附答案解析)
- 美术教育的困难与挑战
- 2023年西北工大自主招生高考测试数学试题有答案
- 2022-2023学年安徽省芜湖市弋江区六年级数学小升初摸底考试含答案
- 肠系膜静脉血栓形成
评论
0/150
提交评论