资源描述
兰州职业技术学院
(信息工程系)
毕业设计(论文)
课 题 电子商务网站设计与实现
(魅力街区购物系统)
所属教学单位 电子与信息工程系
专 业 计算机网络技术
年 级 12网络班
学 号 20122397
姓 名 包艇艇
指导教师 安 玲
2014 年 12 月 5 日
前言
随着网络技术的飞速发展,网络经济与人们的生活越来越紧密的联系在一起,随着信息技术的发展,网上购物与网上销售业在逐渐发展和普及。消费者与销售商都迫切需要一种简便与高速高效的购物与销售方式,在线网上购物系统的出现正好满足人们的这种需要,通过网络的简便与高效可以使消费者节省时间,价格公开合理。而使销售者更合理的调节商品的数量以免造成商品的积压,也同时使生产者正真随着市场经济的需求而调节产品的种类和数量。
随着网络的不断普及,网页技术的不断发展,人们对网页的要求也不再的文字,图片的简单堆砌或是单调枯燥的内容,而是ASP技术的灵活性可以方便的访问数据库,ASP把数据库搬上了WEB页面,使人们可以通过互联网使用大型的包含数据库功能的系统。
本系统正是使用ASP技术的动态网页与Access数据库结合打造的1个网上商品管理系统,一般用户通过网络访问该系统,提供用户登录及注册功能,购物车功能,本系统充分发挥了ASP技术显示与客户端,运行于服务器端的特点,用户购物的方便性。
摘要
内容摘要:随着Internet的不断普及,人们对于互联网技术的要求已不单单是浏览一下网页,收发电子邮件,人们已经开始利用互联网这一强大的平台来进行网上购物。本系统是运用ASP技术和Access数据库原理,基于B/C模式开发了一个网上购物系统。在本人的系统中,包括两个部分:前台管理模块和后台管理模块。在前台用户模块中,顾客可以很方便的注册成为会员,对物品进行浏览检索,查看物品的详细资料,然后根据顾客各人的喜好购买喜欢的物品。
关键词:网上购物系统,ASP,数据库,AspwebServer
目录
摘要 3
第一章 绪论 6
1.1 选题背景 6
1.2 系统目标 6
1.3 系统介绍 6
1.3.1 系统开发环境 6
1.3.2 系统简介 7
第二章 相关技术 8
2.1 ASP技术综述 8
2.1.1 ASP概述 8
2.1.2ASP的特点 8
2.1.3 ASP的内部对象 8
2.1.4 ASP与AspWebServer 8
2.1.5 ASP的工作原理 9
2.1.6 ASP的工作过程 9
2.2 ADO技术 9
2.2.1 ADO简介 9
2.2.2 ADO技术的特点 9
2.2.3 利用ADO访问数据库 10
第三章 功能需求 11
3.1 功能划分 11
3.2 功能描述 11
第四章 数据库设计 12
4.1 数据字典 12
4.2 数据库结果设计 12
第五章 概要设计 14
5.1 购物流程图 14
第六章 系统测试与运行 15
6.1 系统测试 15
6.2 测试结果与部分重要代码 15
6.2.1 网站首页运行结果如下图所示 15
6.2.2 登陆界面效果图及部分代码 15
6.2.3 用户注册效果图及部分代码 18
6.2.4 购物车效果图及部分代码 21
总结 25
参考文献 26
致谢 27
第一章 绪论
1.1 选题背景
电子商务自1998年开展第一笔网络交易以来,正在以前所未有的速度发展,网上购物这种新的购物方式已经开始逐渐深入到人们的日常生活,并正在为越来越多的人所喜爱。近年来,随着计算机科学的发展,数据库技术在Internet中的应用越来越广泛,为广大网络用户提供了更加周到和人性化的服务。个性化的电子商务已逐渐成为当今WEB应用的潮流。网上购物系统作为电子商务的前端商务平台,在其商务活动全过程中起着举足轻重的作用。本文主要考虑的是如何建设网上购物系统。网上购物系统具有强大的交互功能,可使商家和用户方便的传递信息,完成电子贸易或交易。这种全新的交易方式实现了公司间文档与资金的无纸化交换。
然而大多数的电子商务网站,尤其是90年代早期的,都只是一个简单的在线说明书或销售工具,尽管它是一种低成本广告方式,但是不提供重信息、乏味的介绍、不回答网站产生的反馈、以及允许网站的信息过时等缺点,使得这类网站很难实现吸引顾客、招揽生意的功能;即使广告成功的说服一个用户去购买某种物品,然而由于缺少在线接收订单等功能,使得用户有充分的时间去重新考虑购买该物品的必要性,因此快速的交易也是非常重要的。所以开发出一个功能齐全、操作方便、界面美观的电子商务系统已经成为商家的迫切期望,同时也是众多用户所渴望的。网上购物系统正是在这种背景下产生的,它把传统的消费模式搬上了互联网,并将人们从传统购物理念的束缚中解放出来,进入了一个全新的购物时代。随着企业与企业之间电子商务的兴起,电子商务已经成为一个很热门的话题,也取得了巨大的成功。所以用ASP开发购物系统有很大的发展前景。
1.2 系统目标
本系统开发的目标就是要构建一个优秀的网上购物系统,吸引更多的客户光临网站购物。客户可以订购物品,可以方便的从任何地方,在任何时间购买商务网站上的产品。巧妙的网上购物网站的设计可以刺激客户购买他们通常不想购买的物品。最终开发出一个功能齐全、操作简单、界面美观、维护方便的购物系统。
1.3 系统介绍
1.3.1 系统开发环境
操作系统 :Windows 7+AspwebServer
数据库环境:Access
开发语言:ASP
开发工具:Dreamweaver
1.3.2 系统简介
网上购物系统,是在网络上建立一个虚拟的购物商场,避免了挑选物的烦琐过程,使您的购物过程变得轻松、快捷、方便、很适合现代人快节奏的生活;同时又能有效的控制“商场”运营的脚本,开辟了一个新的销售渠道。多种付款和送货方式使得客户可以在家完成整个购物流程,只需等待送货上门。对经营者来说,网上购物系统又可以节约企业的运营成本,迅速扩大企业的知名度,同时也提供了一个在迅速成长的电子商务领域成长并壮大自身的一个机会。
系统特点:
1) 用户无需考虑系统的安装维护;
2) 美观、友好的展示铺面;
3) 顾客可以方便的查询并订购物品;
4) 系统选用强大的数据库保存各类信息;
在该系统的实现过程中,各种技术和工具的采用是非常重要的,ASP作为一个最广泛的用于开发WEB应用程序的语言,以它简单易学、开发工具强大而多样、维护和修改时间迅速等方面的优越性战胜了其他流行的WEB脚本语言,成为众多网站程序设计人员的首选。
第二章 相关技术
2.1 ASP技术综述
2.1.1 ASP概述
ASP全名Active Server Page,是一个Web服务器端的开发环境,利用它可以产生和运行动态的、交互的、高性能的Web服务应用程序,如交互式的动态网页,包括使用HTML表单收集和处理信息,上传与下载等等。像它的名字所表示的,ASP属于ActiveX技术的一种ActiveX技术在www技术上可分为两大类:ActiveX Client和ActiveX Server-通常实现动态主页的方式Java applet、ActiveX control、VBScript、JavaScript等都属于client端的应用,通过浏览器来解释执行它们的语句命令;当需要针对不同使用者使用不同画面或要访问服务器资源等服务时,client端的应用是不够的,ASP就是这样一种Server 端的应用环境,类似于client端的应用它也是通过描述语句(Script)来实现动态主页,但它的Script由服务器端解释执行,生成用户需要的主页送出它的好处在于你不需要担心浏览器是否能处理ASP,而且不会像client端的应用Script一样让别人知道你的编程逻辑。
2.1.2ASP的特点
ASP的特点:
(1)ASP是一种程序语言,无需编译。
(2)为纯文本文件。
(3)独立于浏览器。
(4)源程序不会让客户端看到。
(5)可与任何ActiveX Script语言兼容使用。
(6)实现复杂数据库操作。
2.1.3 ASP的内部对象
Asp提供了六个内部对象,供用户直接调用:
1) application 对象:负责管理所有会话信息,可用来指定的应用程式的所有用户之间共享信息。
2) Session 对象:存贮特定用户的会话信息,只被该用户访问,当用户在不同web页面跳转时,session 中的变量在用户整个会话过程中一直保存。Session对象需cookie支持。
3) Reuquest 对象:从用户端取得信息传递给服务器,是asp读取用户输入的主要方法。
4) Response 对象:服务器将输出内容发送到用户端。
5) Server 对象:提供对服务器有关方法和属性的访问。
Object context对象:ISS 4.0新增的对象,用来进行事务处理。
2.1.4 ASP与AspWebServer
ASP是用来生成网页的,而AspwebServer则是用来将所生成的网页传递给用户。来看一下AspwebServer与ASP的工作流程。当用户请求一个index.asp的网页时,首先服务器会收到这个请求,并转交给Asp环境来处理这个index.asp 中的各个变量、各个语法,并将这些内容完整地生成为一个全部是HTML的文件,此时ASP的工作即告完成。随后AspwebServer接受该文件,并将该文件传递给用户的浏览器,用户的浏览器收到该文件后会显示文件的内容,从而完成整个请求。
2.1.5 ASP的工作原理
当在web站点中融入ASP功能后,将发生以下事情:
(1) 用户在浏览器的地址栏中输入ASP文件访问的地址和名称
(2) 浏览器将这个ASP的请求发送给AspwebServer服务器
(3) AspwebServer服务器接受这个请求,从硬盘或内存中调出站点内容,默认页面的扩展名是.asp。
(4) AspwebServer服务器读取ASP文件中的特定代码并解释执行。
(5) ASP文件按照从上到下的顺序开始处理,执行脚本命令,执行HTML页面内容,并根据命令要求生成响应的静态页面。
(6) HTML页面信息发送到浏览器。
(7) HTML页面将会被用户浏览器解释执行并显示在用户浏览器上。
因为脚本是在服务器端运行的,所以web服务器完成所有处理后,将标准的HTML页面送往在浏览器。这意味着,ASP只能在可以支持的服务器上运行。让脚本驻留在服务器端的另外一个益处是:用户不可能看到原始脚本程序的代码,用户看到的,仅仅是最终产生的HTML内容。
2.1.6 ASP的工作过程
ASP 程序工作在Web服务端,浏览器向服务器发出一个HTTP请求,请求一个.asp文件,Web服务器响应请求并调用ASP引擎执行该文件,当遇到任何与Active脚本兼容的脚本时ASP引擎调用相应的脚本引擎解释执行其中的脚本命令,若脚本中含有访问数据库的请求,则通过ODBC连接后台数据库,由数据库访问组件执行访问操作。最后,ASP依据访问的结果集自动生成标准的HTML页面发送到客户浏览器。简单的说就是:AspwebServer解析asp脚本,解析后,输出到客户端IE客户端,以html的形式表现出来。
2.2 ADO技术
2.2.1 ADO简介
ADO(ActiveX Data Objects)是一个用于存取数据源的COM组件。它提供了编程语言和统一数据访问方式OLEDB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的链接。访问数据库的时候,关于SQL的知识不是必要的,但是特定数据库支持的SQL命令也可以通过ADO中的命令对象来执行。
ADO封装了OLE DB所提供的接口,是基于OLE DB 模型之上的更高层应用,比起OLE DB提供者,ADO的接口可以使程序员在更高级别上同数据交互,ADO技术不仅可以应用于关系数据库,也可以就用于非关系数据库。可以用统一的方法对不同的文件系统进行访问,大大简化了程序编制,增加了程序的可移植性。ADO的对象模型简化了对对象的操作,而无须了解其父对象。
2.2.2 ADO技术的特点
ADO技术是访问数据库的新技术,具有易于使用、访问灵活、应用范围广的特点。
(1) 易于使用
这是ADO技术的最重要的一个特征。由于ADO是高层应用,所以相对OLE DB或者ODBC,它具有面向对象的特性。同时,在ADO的对象结构中,其对象之间的层次关系并不明显。相对于DAO等访问技术来讲,它不必关心对象的构造顺序和构造层次。对于要用的对象,不必先建立连接、会话等对象,只需直接构造即可,方便了应用程序的编制。
(2) 高速访问数据源
由于ADO技术基于OLE DB,所以,它也继承了OLE DB访问数据库的高速性。
(3) 可以访问不同的数据源
ADO技术可以访问关系数据库和非关系数据库的所有文件系统,这个特点也是从OLE DB中继承而来。此特点使应用程序具有很好的灵活性和通知性。
2.2.3 利用ADO访问数据库
ADO(ActiveX Data Objects)是一种操作Microsoft所支持的数据库的新技术。在ASP中,ADO可以看作是一个服务器组件(Server Component),更简单点说,是一系列的对象,应用这些功能强大的对象,即可轻松完成对数据库复杂的操作。具体的操作步骤可以归纳为以下几步:
(1) 创建数据库源名(DNS)
(2) 创建数据库连接(Connection)
(3) 创建数据库对象
(4) 操作数据库
(5) 关闭数据库对象和连接
第三章 功能需求
3.1 功能划分
本系统主要有前台管理功能和后台管理功能。
3.2 功能描述
前台管理功能:包括用户注册管理,用户密码修改管理、用户订单管理(功能未实现)、购物车管理,物品查询,留言功能。
后台管理功能:用户管理,物品类别管理,留言管理,订单管理(功能未实现)。
本系统应具有如下功能:
(1) 物品目录的浏览:若物品的数目很多,这样就必须分类构建物品目录,这样客户就可以直观而又快速地浏览物品及进行查看物品和选择物品。
(2) 物品的搜索:本网站提供了模糊匹配的搜索功能。用户可以键入所要查询的物品名或物品详细信息,这样的设计是为了用户能快速而便捷的找到自己所要的物品(功能未实现)。
(3) 登录和注册:由于在用户购买网站中的物品时,需要客户的详细信息,所以需要客户先登录才可以购买产品。在购买物品时进行确认时,系统会判断是不是本站会员,若不是本站客户,必须建立新账户(注册)。
(4) 购物车管理:是整个网络购物系统的关键部分,需要对购物车进行添加和啊啊删除产品,清空购物车,改变产品数量,获取购物车中产品的总数和价格。
(5) 订单管理:包括用户订单的生成和对用户订单进行的处理。对查询出来的每一条定单记录都可查看其详细信息或进行编辑(功能未实现)。
第四章 数据库设计
4.1 数据字典
用户数据:包含的的数据项有编号、用户名、密码等。
物品类别数据:包含的数据项有分类编号、分类名称、备注等。
物品数据:包含的数据项有编号、物品编号、类别编号、物品名称、物品价格、物品上架时间、备注等。
订单数据:包含的数据项有编号、用户姓名、联系电话、联系地址(功能未实现)。
4.2 数据库结果设计
我将使用Access作 为数据库管理系统。其中包括用户表、购物车表、商品表、新闻表,经过测试,本购物系统基本上能完成系统目标,达到了预定目标,但在某些细节方面还要注意。
用户表(YX_User)表4.1
字段名称
数据类型
字段说明
ID
自动编号
用户ID
Name
文本
用户名
Password
文本
密码
Mail
文本
邮箱
QQ
文本
QQ号码
Sex
是/否
性别
Birthday
日期/时间
生日
Userzhngshiname
文本
用户真实姓名
Youbian
文本
邮政编码
Tel
文本
联系电话
City
文本
所在城市
购物车表(history)表4.2
字段名称
数据类型
字段说明
id
自动编号
username
文本
bookid
数字
bookname
文本
searchkey
文本
userid
数字
lx
数字
ltime
日期/时间
商品表(shangpin)表2.3
字段名称
数据类型
字段说明
nclassid
自动编号
nclass
文本
nclassidorder
数字
anclassid
数字
changyong
数字
key
备注
des
备注
新闻表(news)表4.4
字段名称
数据类型
字段说明
newsid
自动编号
新闻表
newsname
文本
newscontent
备注
addname
文本
adddate
日期/时间
viewcount
数字
newstype
文本
第五章 概要设计
5.1 购物流程图如下图所示
魅力街区网站购物系统
会员
网站访问者
浏览选择商品
注册
浏览挑选商品
添加删除商品
填写订单
修改订单
确认订单
配送发货
生成订单
网站管理员(未实现)
进行网站管理、订单管理、会员管理、系统管理等、
登录
否
是
否
是
否
是
购物流程图5-1
第六章 系统测试与运行
6.1 系统测试
正常情况下在AspwebServer服务器状态下能进行网页的操作就说明测试成功。
6.2 测试结果与部分重要代码
6.2.1 网站首页运行结果如图6-1所示
图6-1
6.2.2 登陆界面效果图及部分代码
(1)效果图如图6-2所示
图6-2
(2)部分代码
logins.asp部分代码如下
<form action="checkuserlogin.asp" method="post" name="userlogin" id="userlogin">
<tr>
<td height="10" colspan="2" class="unnamed2"><div align="center"><font color=ffffff>顾客您好,购买商品请先登录</font></di></td>
</tr>
<tr>
<td width="35%" class="unnamed2"><div align="right"><font color=ffffff>账 号:</font></div></td>
<td width="65%"><div align="left">
<input name="username" type="text" class="form2" id="username2" value="wrtxcn" size="12" maxlength="18" />
</div></td>
</tr>
<tr>
<td class="unnamed2"><div align="right"><font color=ffffff>密 码:</font></div></td>
<td><div align="left">
<input name="userpassword" type="password" class="form2" id="userpassword2" value="123456" size="12" maxlength="18" />
<input class="wenbenkuang" type="hidden" name="linkaddress2" value="<%=request.servervariables("http_referer")%>" />
<br />
</div></td>
</tr>
<tr>
<td class="unnamed2"><div align="right"><font color=ffffff>验证码:</font></div></td>
<td><div align="left">
<input class="form2" name="verifycode" type="text" value="<%If GetCode=9999 Then Response.Write "9999"%>" maxlength="4" size="6" />
<img src="GetCode.asp" /></div></td>
</tr>
<tr>
<td height="10" colspan="2"></td>
</tr>
<tr>
<td height="17" colspan="2">
<div align="center">
<input name="imageField" src="skin/skin<%=skinid%>/login.gif" width="53" height="17" border="0" type="image" onfocus="this.blur()" />
<a href="register.asp"><img src="skin/skin<%=skinid%>/reg.gif" width="53" height="17" hspace="5" vspace="0" border="0" /></a></div></td>
</tr>
<tr>
<td height="10" colspan="2"></td>
</tr>
<tr>
<td colspan="2"><div align="center"><img src="images/dot03.gif" width="9" height="9" hspace="5" /><a href="#" onClick="javascript:window.open('getpwd.asp','shouchang','width=450,height=300');"><font color=ffffff>密码丢失/找回密码</font></a></div></td>
</tr>
</form>
checkuserlogin.asp部分代码如下
<!--#include file="conn.asp"-->
<!--#include file="md5.asp"-->
<%dim username,userpassword,comeurl,verifycode
username=replace(trim(request("username")),"'","")
userpassword=md5(replace(trim(request("userpassword")),"'",""))
verifycode=replace(trim(request("verifycode")),"'","")
if username="" or userpassword="" then
response.write "<script LANGUAGE='javascript'>alert('您的用户名或密码有误!');history.go(-1);</script>"
response.end
end if
if cstr(session("getcode"))<>cstr(trim(request("verifycode"))) then
response.Write "<script LANGUAGE='javascript'>alert('请输入正确的验证码!');history.go(-1);</script>"
response.end
end if
set rs=server.CreateObject("adodb.recordset")
rs.Open "select * from [YX_User] where name='"&username&"' and password='"&userpassword&"' " ,conn,1,3
if not(rs.bof and rs.eof) then
if userpassword=rs("password") then
response.cookies("Cnhww")("username")=trim(request("username"))
response.cookies("Cnhww")("reglx")=rs("reglx")
response.cookies("Cnhww")("jifen")=rs("jifen")
response.cookies("Cnhww")("jiaoyijine")=rs("jiaoyijine")
rs("lastlogin")=now()
rs("logins")=rs("logins")+1
rs("userlastip")=Request.ServerVariables("REMOTE_ADDR")
rs.Update
rs.Close
set rs=nothing
username=trim(request("username"))
conn.execute("delete from orders where username='"&username&"' and zhuangtai=7")
conn.execute("delete from ordersaward where username='"&username&"' and zhuangtai=7")
if request("linkaddress")="" then
response.redirect request.servervariables("http_referer")
else
response.redirect request("linkaddress")
end if
else
response.write "<script LANGUAGE='javascript'>alert('对不起,您的用户名或密码有误!');history.go(-1);</script>"
end if
else
response.write "<script LANGUAGE='javascript'>alert('对不起!您的用户名或密码有误!');history.go(-1);</script>"
end if
sub loginok()
response.Write "欢迎您 <font color=red>"&request.cookies("Cnhww")("username")&"</font>"
response.redirect "index.asp"
end sub
%>
6.2.3 用户注册效果图及部分代码
(1)效果图如图6-3所示
图6-3
(2)部分代码
Saveuserinfo.asp部分代码如下
<%dim action,username
action=request.QueryString("action")
username=request.cookies("Cnhww")("username")
select case action
'//收货人信息
case "shouhuoxx"
set rs=server.CreateObject("adodb.recordset")
rs.Open "select * from [YX_User] where name='"&username&"' ",conn,1,3
rs("shouname")=trim(request("shouname"))
rs("shengshi")=trim(request("shengshi"))
rs("reglx")=2
rs("szSheng")=trim(request("szSheng"))
rs("szShi")=trim(request("szShi"))
rs("shouhuodizhi")=trim(request("shouhuodizhi"))
rs("youbian")=trim(request("youbian"))
rs("usertel")=trim(request("usertel"))
rs("songhuofangshi")=trim(request("songhuofangshi"))
rs("zhifufangshi")=trim(request("zhifufangshi"))
rs.Update
rs.Close
set rs=nothing
response.Write "<script language=javascript>alert('您的详细资料信息保存成功!');</script>"
response.redirect "myuser.asp?action=shouhuoxx"
response.End
case "userziliao"
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from [YX_User] where name='"&username&"'",conn,1,3
rs("useremail")=trim(request("useremail"))
if request("ifgongkai")="" then
rs("ifgongkai")=0
else
rs("ifgongkai")=trim(request("ifgongkai"))
end if
rs("userzhenshiname")=trim(request("userzhenshiname"))
rs("sfz")=trim(request("sfz"))
rs("sex")=trim(request("shousex"))
rs("nianling")=trim(request("nianling"))
rs("szsheng")=trim(request("szsheng"))
rs("szshi")=trim(request("szshi"))
rs("shouhuodizhi")=trim(request("shouhuodizhi"))
rs("usertel")=trim(request("usertel"))
rs("youbian")=trim(request("youbian"))
rs("qq")=trim(request("qq"))
rs("mail")=trim(request("useremail"))
rs("homepage")=trim(request("homepage"))
rs("content")=trim(request("content"))
rs.update
rs.close
set rs=nothing
response.Write "<script language=javascript>alert('您的个人资料修改成功!');window.location.href='"&request.servervariables("http_referer")&"';</script>"
response.end
case "savepass"
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from [YX_User] where name='"&username&"'",conn,1,3
if trim(request("userpassword"))<>"" then
rs("password")=md5(trim(request("userpassword")))
end if
rs.update
rs.close
set rs=nothing
response.Write "<script language=javascript>alert('密码更改成功!');window.location.href='"&request.servervariables("http_referer")&"';</script>"
response.End
case "repass"
set rs=server.CreateObject("adodb.recordset")
rs.open "select password from [YX_User] where name='"&trim(request("username2"))&"'",conn,1,3
rs("password")=md5(trim(request("userpassword2")))
rs.update
rs.close
set rs=nothing
response.Write "<script language=javascript>alert('您的密码取回成功,请登陆!');history.go(-1);</script>"
end select
%>
6.2.4 购物车效果图及部分代码
(1)效果图如图6-4所示
图6-4
(2)部分代码
buy.asp部分代码如下
<%
action=request.QueryString("action")
if request.Cookies("cnhww")("username")<>"" then
username=trim(request.Cookies("cnhww")("username"))
else
if request.Cookies("cnhww")("dingdanusername")="" then
username=now()
username=replace(trim(username),"-","")
username=replace(username,":","")
username=replace(username," ","")
response.Cookies("cnhww")("ding
展开阅读全文