毕业设计(论文)基于BS模式的网上购物系统设计.doc
摘 要随着Internet的不断普及,人们对于互联网技术的要求已不单单是浏览一下网页,收发电子邮件,日益忙碌的人们开始追求足不出户的利用互联网这一强大的平台来实现的网上购物。对于企业来讲,无论是企业之间(B to B),还是企业和客户之间(B to C)的交易,如果能够实现网上交易将大大提高交易速度节约交易成本。近几年,随着网络数据库技术的进一步发展,使得这一设想逐渐成为现实。运用ASP技术和网络数据库原理(ASP+ACCESS),基于B/S模式我开发了一个网上购物系统。在我的系统中,顾客可以很方便的注册成为会员,对商品进行浏览检索,查看商品的详细资料,然后根据各人的喜好购买心仪的商品。系统会自动为顾客生成订单,按照顾客所填写的信息提交订单并发货。系统管理员则可以对现有的商品进行添加和编辑,审查已注册的用户并对提交的订单进行处理。关键词:B/S模式;ASP;电子商务;access数据库。AbstractAlong with the Internet of continuously universal, people are for the request of technique Internet the already and not only single is a view once web page, receive and dispatch the E-mail, increasingly busy people start pursuing the exploitation Internet that keep the house this a the mighty platform come the net that realizes on the shopping.Speak for the business enterprise, and wether is the business enterprise's( B to B), or business enterprise with the customer's bargain for( B to C), if can realize the net up trade and will consumedly increase the bargain speed the economy to trade the cost.In the last few years, along with the technique's further development of network database, make this on conceiving to gradually become the actuality.Application ASP technique is with the network database principle, according to B/ S mode I developped a net on the shopping system.In my system, customer can very the convenient registration become the member, and proceeds to merchandise view index, look into favour that the merchandise's detailed data, then purchase the adoring merchandise according to the everyone.System would the auto is a born order of customer, and hand over the order to erupt goods according to the information for fill inning of customer.System manager can then proceeds to increase with the order that edit, investigate already the registered customer combine right hand over to proceeds to handle to current merchandise.Key words: B/ S mode, ASP, electronic commerce, ACCESS database.目录序 言11网上购物系统分析与设计21.1系统分析21.2模块分析31.3设计规划32数据库设计62.1 产品表62.2 产品主类别表62.3 产品子类别表62.4 订单表72.5 订单产品表72.6 新闻表72.7 用户表73首页的设计93.1 数据库连接93.2 注册及搜索功能的制作93.3 导航条124商品动态页面的设计134.1商品罗列页面134.2商品细节页面的制作134.3 商品搜索结果页面的制作155商品结算功能的设计175.1统计订单175.2清除订单175.3用户信息确认订单185.4订单确认信息185.5订单最后确认186订单查询功能196.1订单查询输入196.2订单查询结果197 购物车后台管理系统的制作207.1后台登陆207.2订单管理207.3商品管理228 辅助页面的制作25总结26致谢27参考文献27序 言随着Internet国际互联网的发展,越来越多的企业开始建造自己的网站。基于Internet的信息服务,商务服务已经成为现代企业一项不可缺少的内容。很多企业都已不满足于建立一个简单的仅仅能够发布信息的静态网站。现代企业需要的是一个功能强大的,能提供完善的电子商务服务的动态商务网站。ASP(Active Server Pages)是Microsoft提出的一种网络服务器端编程环境。ASP已经成为开发动态网站的重要而快速、有效的工具。ASP强大的功能使之成为一种优秀的服务器技术。随着网络技术的日益成熟,ASP技术在网络编程中也变得越来越重要。所以,在我的毕业设计中,我采用了ASP及Dreamweaver8作为开发工具,构建了一个能实现简单的电子商务的小型动态商务网站凹丫丫儿童购物网。该系统能实现用户的注册、登录功能;能够实现商品的查询,订购等功能。该系统基本上具备一个网上商城应该具备的功能,该设计项目基本上体现了构建一个动态商务网站所需要的技术。1网上购物系统分析与设计1.1系统分析商务实用型网站是在网络上建立一个虚拟的购物商场,让访问者在网络上实现购物的功能。网上购物以及网上商店的出现,避免了挑选商品的烦琐过程,让人们的个购物过程变得轻松、快捷、方便。本设计的首页如图1.1所示。图1.1 首页效果图对于网站的功能说明如下。(1) 采取会员制保证交易的安全性。(2) 开发了强大的搜索查询功能,能够快捷的找到相应的商品。(3) 会员购物流程:浏览商品、将商品放入购物车、去结算。每个会员有自己专用的购物车,可随时订购自己中意的商品然后结算完成购物。购物的流程是指导购物车系统程序编写的主要依据。(4) 完善的会员服务功能:可随时查看帐目明细、订单明细。(5) 设计新闻浏览,能够为顾客提供一些生活购物常识。(6) 后台管理使用本地数据库,保证购物订单安全及时有效地处理强大的统计分析功能,便于管理者及时了解财务状况、销售状况。1.2模块分析通过对系统功能的分析,得到网站的网上购物系统主要由如下功能模块组成:(1) 前台网上销售模块。指客户在浏览器中所看到的直接与店主面对面的销售程序,包括:浏览商品,订购商品,查询订购,购物车等功能。(2) 后台数据录入模块。前台所销售商品所有数据,其来源都是后台所录入的数据。(3) 后台数据处理功能模块。是相对于前台网上销售模块而言,网上销售的数据,都放在销售数据库中,对这部分的数据进行处理,是后台数据处理模块的功能。(4) 用户注册功能模块。用户当然并不一定立即就要买东西,可以先注册,任何时候都可以来买东西,用户注册的好处在于买完东西后无须再输入一大堆个人信息,只须将账号和密码输入就可以了。(5) 订单号模块。客户购买完商品后,系统自动分配一个购物号给客户,以方便客户随时查询帐单处理情况,了解现在货物的状态。1.3设计规划制作网站之前首先要把设计好的网站内容放置在本地计算机的硬盘上,为了方便站点的设计及上传,设计好的网页都应储在一个目录下,再用合理的文件夹来管理文档。首先为站点创建一个主要文件夹,然后在其中再创建多个子文件夹,最后将文档分类存储当相应的文件夹下。从站点规划的文件夹及完成的页面出发,分别对需要设计的页面功能分析如下。n 站点文件夹下的9个文件及功能分别如下:index.asp:用于实现购物系统首页的页面。config.asp:被相关动态页面调用,用来实现数据库连接。login.asp:注册登陆页面。loginfail.asp:注册失败页面。register.asp:填写注册信息的页面。lostpassword.asp:输入找回密码时需要连接的页面。showquestion.asp:显示查询问题。showpassword.asp:显示查询结果。logoot.asp:注销完成后转至的页面。n About_us文件夹放置关于企业介绍的一些内容,页面只有一个。About_us.asp:关于企业的内容简介页面。n Admin文件夹放置的是关于整个网站的后台管理文件内容,又分别包括了news_admin、order_admin和product_admin共3个子文件夹。此模块是购物系统中的难点和重点。l News_admin文件夹是放置后台新闻管理页面,里面分别放置了如下4个动态页面。News_update.asp: 建立上传动态页。News_add.asp:增加新闻的页面。News_modify.asp: 修改新闻的页面。News_modifylist.asp:修改新闻列表页面。l Order_admin文件夹放置后台订单处理的一些动态页面,分别如下5个动态页面。Del_order.asp: 删除订单。Mark_order.asp:标记已处理订单。Order_list.asp:后台客户订单列表。Order_list_mark0.asp:未处理客户订单列表。Order_list_mark1.asp:已处理客户订单列表。l Product_admin文件夹用来放置商品管理页面,主要包括了以下9个动态页面,这是购物的重点和难点涉及到上传图片等高难度编程操作。Del_product.asp:删除商品页面。Insert_product.asp:插入商品页面。Product_add.asp:添加商品页面。Product_list.asp:后台管理商品列表。Product_modify.asp:更新商品信息页面。Update_product.asp:建立上传命令动态页面。Upfile.asp:上传文件测试动态页面。Upfile.htm:上传图片文件测试静态页面。Upload_5xsoft.inc:上传文件ASP命令模版。l Check_admin.asp:用于判断后台登陆管理员身份确认动态文件。n Client文件夹用来放置客户中心的内容页面,也只有一页。Client.asp:制作与购物相关的一些说明。n Image文件夹是放置网站建设的一些相关图片。n Mdb文件夹用来放置网站的ACCESS数据库,所有的购物信息及数据全放在这里。n News文件夹用来放置网站新闻中心的一些动态页面,主要包括如下的动态页面。News_content.asp:新闻细节页面。News_list.asp:显示所有新闻列表页面。n Product文件夹用来放置与销售商品相关的页面。主要包括如下3个动态页面和一个文件夹。 All_list.asp:所有商品罗列页面。 Product.asp:商品细节页面。 Search_result.asp:商品搜索结果页面。Images文件夹放置商品图片。n Order_search文件夹用来放置用户订单查询的一些动态页面,包括以下两个页面。Order_search.asp:用户订单查询输入页面。 Your_order.asp:用户订单查询结果页面。n Shopping文件夹主要用来放置结算的一些动态页面,主要包括如下。Add2bag.asp:统计订单商品数量的动态页面。Clear_bag.asp:清楚订单信息的页面。Order.asp:订单确认信息页面。Order_sure.asp:订单最后确认页面。Shop.asp:订单用户信息确认页面。2数据库设计网上购物系统的数据库是比较庞大的,在设计的时候需要从使用功能模块入手,分别创建不同名称的数据表,命名的时候也要与使用的功能命名相配合,方便后面相关页面制作时的调用。本章将要完成的数据库命名为mydb.mdb,在数据库中建立7个不同的数据表,如图2.1所示。图2.1 建立的数据库2.1 产品表产品表,是储存商品的相关信息表,设计的商品数据表如图2.2所示。2.2 产品主类别表产品主类别表,是把商品进行分类后的一级类别表。主要设计了“主类别ID”和“主类别名称”两个字段名称,企业可以根据需要展示商品种类,在数据表中加入商品的类别,如图2.3所示。2.3 产品子类别表产品子类别表,是把商品进行分类后的二级类别表。主要设计“子类别ID”、“子类别名称”及“主类别ID”等3个字段名称,根据需要展示的详细商品种类,在数据表中加入商品的名称,如图2.4所示。2.4 订单表订单表,是储存网上用户订购的相关信息表,设计的商品数据表如图2.5所示。2.5 订单产品表订单产品表,是记录用户在网上订购的商品信息表,用于用户在线查询订单。主要设计了“订单产品ID”、“订单ID”、“商品ID”及“订购数量”4个字段名称,如图2.6所示。2.6 新闻表新闻表,是储存新闻用的数据表。主要设计了“新闻ID”、“新闻标题”、“新闻出处”、“新闻内容”、“新闻图片”及“新闻日期”6个字段名称,如图2.7所示。2.7 用户表用户表,是储存注册用户的数据表。主要设计了“用户ID”、“用户名”、“密码”、“真实姓名”、“性别”、“电话”、“手机”、“电子邮件”、“住址”、“说明”、“question”、“answer”及“属性”11个字段名称,如图2.8所示。图2.2 产品表 图2.3 产品主类别表 图2.4 产品子类别表图2.5 订单表 图2.6 订单产品表 图2.8 用户表图2.7 新闻表上面设计的数据表可以应用于庞大的网上购物系统。3首页的设计3.1 数据库连接用ASP开发的网站,习惯上通过config.asp这个页面来实现网站数据库的连接。页面比较简单,就是设置数据库连接的基本命令,程序说明如下:<% connstr="DBQ="+server.mappath("/mdb/mydb.mdb")+"/设置DBO服务器物理路径DefaultDir=;DRIVER=Microsoft Access Driver (*.mdb);"/定义为ACCESS数据库set conn=server.createobject("ADODB.CONNECTION")/设置为ADODB连接conn.open connstr/打开数据库%>3.2 注册及搜索功能的制作网上购物系统需要有一个购物流程来引导用户在网上实现订购,一般都是通过用户自身登陆、浏览、订购、结算这样的流程来实现网上购物的,同时需要加入搜索功能以方便用户在网上直接进行搜索订购,所以我在首页的导航栏建立了用户登陆系统,购物车及搜索功能。由功能出发分别设计各功能模块:u 首先分析核心部分购物车系统。完成后的设计效果如图3. 1所示。该购物车系统重要有实现写入用户名,统计购物车的商品,统计商品总价值,请空购物车,连接到结算功能页面这几个主要的小功能。图3.1 完成的购物车用户系统u 此段程序如下所示:<tr><td colspan="2"><marquee onMouseOver=stop(); onMouseOut=start(); direction=left scrollamount=4><img src="image/face.gif" width="19" height="19"><% if session("MM_username")<>"" thenresponse.Write(session("MM_username")else response.Write("游客") end if %>/如果用户登陆了则显示用户名,如果没有登陆则显示游客 ,欢迎你!购物车中共有</span><span class="STYLE1"><% if session("all_number")="" then %>0<% else %><%=session("all_number")%><% end if %>件商品总价值</span><span class="STYLE1">/统计商品的总数量<% if session("all_price")="" then%> 0<% else %><%=session("all_price")%><% end if %>元/统计商品总价值<% if session("all_number")="" then%><span class="STYLE2"><strong>清空购物车</strong> / <strong>去结算</strong></span> <% else %><a href="./shopping/clear_bag.asp">/调用clear_bag.asp页面功能来实现清空购物车<strong>清空购物车</strong></a> / <a href="./shopping/shop.asp"><strong>去结算</strong></a>/调用shop.asp页面进行结算<% end if %> <img src="image/face.gif" width="19" height="19"></marquee></td></tr>u 接着购物车系统的下面是用户注册、登陆系统及密码找回3个模块。设计效果图如下图3. 2所示。此3个模块可以统称为用户管理系统,用户管理系统的网页及网页结构列表如图3.3所示。图3.2 效果图用户管理系统Index.asp 用户登陆模块 注册页面register.asp 找回密码模块 Loginfail.asp Index.asp login.asp lostpassword.asp Login.asp Showquestion.aspShowpassword.asp图 3.3 用户管理系统网页结构列表(一)用户登陆模块的设计(1)利用Dreamweaver8对前台进行设计,效果如图3.2所示。然后利用工具向网页添加“登陆用户”的服务器行为,具体步骤如下:打开“服务器行为”面板单击该面板上按钮,执行菜单“用户身份验证”|“登陆用户”命令。此时,打开“登陆用户”对话框,各项参数设置如图3.4所示。(2)登陆失败则转入Loginfail.asp页面。(3)登陆成功后仍为Index.asp页面,但用户名称已经成功写入购物车。(二)用户注册模块的设计(1)Register.asp页面主要实现用户注册的功能,用户注册的操作就是向mydb.mdb数据库的用户表中添加记录的操作,页面设计效果如图3.5所示(2)注册失败则在Register.asp页面上有相关提示代码,重新注册。(3)注册成功则转到login.asp页面,进行登陆。(三)密码查询模块的设计(1)Lostpassword.asp页面是用来让用户提交查询遗失密码的用户名的页面。(2)当用户在lostpassword.asp页面中输入用户名,并单击“提交”后,这时会通过表单将用户名提交到showquestion.asp页面中,该页面的作用就是根据用户名从数据库中找到对应的记录的提示问题并显示在showquestion.asp页面中,输入答案,服务器就把用户名和密码提示问题答案提交到showpassowrd.asp页面中。 图3.4 各项参数设置 图3.5 Register.asp页面u 搜索功能的设计与制作主要是通过SQL的查询语句来实现的,设计效果如图3.6所示图3.6 搜索功能具体功能程序代码如下:<form name="FromSearch" method="post" action="product/search_result.asp" onSubmit="return check()">/提交后由search_result.asp页面显示搜索效果<td width="493"><h5><% set rs_class=server.createobject("adodb.recordset")sql="select * from 产品主类别 order by 主类别ID"rs_class.open sql,conn,1,1 %>/建立SQL查询语句,通过商品主类别及主类别ID来查询商品数据库<img src="image/star.gif" width="13" height="12">商品搜索:关键字<input name="search_key" type="text" class="input1" size="10"> /设置搜索关键词文本域类别<select name="search_class" class="input1"><option value="" selected>-所有产品类别-</option><%for i=1 to rs_class.RecordCount-1%><option value="<%=rs_class("主类别ID")%>"><%=rs_class("主类别名称")%></option><% if rs_class.eof then exit forend ifrs_class.movenextnextrs_class.MoveFirst '把记录集游标移到第一条记录 %></select>/通过商品主类别ID和主类别名称进行分类查询<input name="imageField2" type="image" src="image/search.gif" width="45" height="20"> </h5></td></form>3.3 导航条导航条是附着在背景图片上的设计,设计效果如图3.6所示。图3.6 导航条在首页制作中,需要说明的是热销商品模块的代码比较简单,大部分是静态代码,主要是放入购物车(“购买”按钮)功能,即调用add2bag.asp页面,在第五章会详细介绍。4商品动态页面的设计4.1商品罗列页面单击导航条中的“采购中心”或单击首页“商品分类”中的任意商品内容可以连接到此页面,主要是用来显示数据库中的所有商品。设计效果如图4.1所示。图4.1 采购中心页面主要部分主要相关代码如下:<% for i=1 to rs.RecordCount %><tr>/设置记录集计算循环<td width="430"><strong> <%=rs("主类别名称")%></strong></td> /显示主类别名称<td width="142" height="30"><h5><strong> <a href="all_list.asp" class="STYLE2">返回总分类</a></strong> </h5></td></tr><tr><td height="40" colspan="3"><font size="2" color="#000000" > <% for j=1 to rs_sub.RecordCount if rs_sub.eof then rs_sub.MoveFirst end if if CInt(rs_sub("主类别ID")=CInt(rs("主类别ID") then %> <a href="search_result.asp?sub_classID=<%=rs_sub("子类别ID")%>&name=<%=rs_sub("子类别名称")%>"><%=rs_sub("子类别名称")%></a> <% end if rs_sub.MoveNext next %></font></tr>/该段程序是在页面中显示子类别名称的代码<% rs.MoveNext next %>4.2商品细节页面的制作商品细节页面product.asp要能显示商品的所有详细信息,包括商品价格、商品产地、商品图片等,同时要显示是否在架(是否还有商品)以及放入购物车等功能。设计效果如图4.2所示。图4.2 商品详细页面主要部分具体相关代码如下: <table width="100%" height="40" border="1" cellpadding="3" cellspacing="0" bordercolor="#FFCCCC"> <tr><td width="228" height="38"><h5>商品编码:<%=rs("商品编码")%></h5></td> <td width="219"><% if rs("在架状态")=0 then else%><a href="./shopping/add2bag.asp?productID=<%=rs("产品ID")%>"><img src="./image/pro_2005_car.gif" width="103" height="31" border="0" /></a> <% end if %></td><td width="233"><h5>/如果商品在架,单击放入购物车链接add2bag.asp页面实现购物功能。<% if rs("在架状态")=0 then %> <span class="STYLE1">抱歉!此商品缺货!</span><% else %> <span class="STYLE1">在架</span><% end if %></h5></td> </tr> </table>/如果商品在架状态定义值为0,则显示“抱歉!此商品缺货!”<table width="100%" height="331" border="1" cellpadding="3" cellspacing="0" bordercolor="#FFCCCC"><tr><td width="23" height="20"><img src="./image/index_title.gif" width="19" height="12" /></td><td width="665">商品名称:<%=rs("商品名称")%></td></tr><tr><td height="21">/显示商品名称<img src="./image/index_title.gif" width="19" height="12" /> </td><td>品牌:<%=rs("品牌")%></td></tr><tr><td height="21">/显示商品品牌<img src="./image/index_title.gif" width="19" height="12" /> </td><td>单位:<%=rs("单位")%></td></tr><tr><td height="21">/显示商品单位<img src="./image/index_title.gif" width="19" height="12" /> </td><td>市场价:<%=rs("市场价")%>元</td> </tr><tr><td height="21">/显示商品市场价<img src="./image/index_title.gif" width="19" height="12" /> </td><td> 会员价:<%=rs("会员价")%>元</td> </tr> <tr><td height="21">/显示商品会员价<img src="./image/index_title.gif" width="19" height="12" /> </td><td>商品图片:</td></tr><tr><td height="204"> </td><td height="204"><% if rs("产品图片")="" then %><img src="images/no_photo.gif" width="500" height="186" /> <% else%><img src="images/<%=rs("产品图片")%>"><% end if %></td> </tr></table><table width="100%" height="55" border="1" cellpadding="3" cellspacing="0" bordercolor="#FFCCCC"><tr><td width="30" height="21"><img src="./image/index_title.gif" width="19" height="12" /></td><td width="543">商品说明:</td><td width="107"> 产地:<%=rs("产地")%></td></tr><tr><td> </td><td colspan="2"><font size="-1"><%=rs("商品说明")%></font> </td></tr></table>4.3 商品搜索结果页面的制作在首页有一个商品搜索功能,通过输入搜索的商品,单击“搜索”按钮后要打开的页面就是这个商品搜索结果页面search_result.asp。该页面包括的功能有,由搜索页传来的字段搜索数据库中的数据和显示该商品。设计效果如图4.3所示。图4.3 设计效果具体相关代码如下: <% if Request("search_key")<>"" then %><strong>您搜索的关键词是:</strong><font color="#FF3300"> <%=Request("search_key")%></font> <% else %><strong><%=Request("name")%>:</strong><% end if %></h5></td>/在搜索关键词后面显示前面输入搜索的阶段变量即搜索的名称值<td width="27%" bgcolor="#FFFFFF"><a href="all_list.asp"><<返回产品分类</a></td></tr></table><table width="90%" border="1" align="center" cellpadding="5" cellspacing="0" bordercolor="#CCCCCC" class="fenlei"><tr> <td width="48%" bgcolor="#FFFFFF"><h5><strong>产品名</strong></h5></td><td width="17%" bgcolor="#FFFFFF"><h5><strong>报价</strong></h5></td><td width="16%" bgcolor="#FFFFFF"><h5><strong>在架状态</strong></h5></td><td width="19%" bgcolor="#FFFFFF"> </td></tr><% if rs.recordcount<>0 then for i=1 to pagesizeif rs.eof then exit for end if %><% if (i mod 2)=0 then %><tr bgcolor="#EBEBEB"> <% end if %><td><a href="product.asp?productID=<%=rs("产品ID")%>" target="_blank"><%=rs("商品名称")%></a></td><td><%=rs("会员价")%></td><td> <% if rs("在架状态")=0 thenresponse.Write("缺货")