资源描述
目 录
摘 要 1
关键词 1
一、需求分析 2
二、系统分析 2
(一)可行性分析 2
1、经济性 2
2、技术性 2
(二)功能结构分析和设计 2
1、项目规划 2
2、系统功能结构图 3
(三)系统流程概述 4
(四)运行环境 5
1、硬件平台 5
2、软件平台 5
(五)小组成员及分工 5
三、系统设计 6
(一)指导思想 6
(二)功能模块设计 6
1、数据库设计 6
2、数据连接代码 10
3、系统主要函数代码 11
4、级联样式表(CSS) 15
5、部分代码 15
四、结束语 43
五、致谢词 44
六、参考文献 44
44
“来此购”商务网
摘 要:现在网络的发展已呈现商业化、全民化、全球化的趋势。电子商务交易的个性化、自由化可为企业创造无限商机,降低成本,同时可以更好地建立同客户、经销商及合作伙伴的关系,为此,许多公司积极拓展电子商务,为客户服务,进行价值链集成。如今网络已成为企业进行竞争的战略手段。企业经营的多元化拓展,企业规模的进一步扩大,对于企业的管理、业务扩展、企业品牌形象等提供了更高的要求。
本网站的设计是采用了ASP语言作为后台的编程语言,Dreamweaver CS3作为开发工具,Microsoft Access作为后台数据库,以IIS为服务平台,实现了网络平台的构建,ASP技术实现了动态网站的制作,以确保网站的安全保密和易于维护。而后台的数据库则采用了Access管理整个系统的后台数据。
关键词:来此购;电子商务;Internet;ASP;
现在网络的发展已呈现商业化、全民化、全球化的趋势。电子商务交易的个性化、自由化可为企业创造无限商机,降低成本,同时可以更好地建立同客户、经销商及合作伙伴的关系,为此,许多公司积极拓展电子商务,为客户服务,进行价值链集成。如今网络已成为企业进行竞争的战略手段。企业经营的多元化拓展,企业规模的进一步扩大,对于企业的管理、业务扩展、企业品牌形象等提供了更高的要求。
该网站使用ASP和Microsoft Access数据库开发,Dreamweaver CS3作为开发工具,以IIS为服务平台,实现了网络平台的构建,ASP技术实现了动态网页的制作,以确保系统的安全保密和易于维护。而后台的数据库则采用了Access管理整个系统的后台数据,实现了网上购物系统的动态管理,使得网上购物的管理更加的及时、高效,提高了工作效率。该网站实现了网上购物的一系列功能。
该网站使用ASP技术开发的动态网站,动态网站有其发展的优势,动态网站是指网站的内容更新和维护是通过基于数据库技术的管理后台完成,它将企业网站建设从单纯静态页面制作延伸为企业对信息资源的组织和管理。基于动态网站管理思想,完全可以不依靠专业网络公司,大大降低建站的成本 ,融合了当今最先进的电子商务技术,顺应网络技术的发展方向 ,网站完全由数据库软件搭建和维护。
网站分为前台和后台两个部分。前台部分主要是用户进行浏览,包括产品的推荐和展示以及产品的搜索,分类展示产品,使得客户的挑选更有目的性,前台还包括本店的最新动态展示,用户可以在线订单,把自己喜欢的商品放进购物车,方便省时,前台系统还包括了在线留言板模块,使得顾客能够提出自己的意见,有利于企业的更好发展。后台是管理人员对前台数据的维护与设置,主要是面对管理人员的,管理人员可以及时的更改网站信息,包括产品的管理,可以根据实际情况添加,修改和删除商品,包括新闻动态的管理,及时更新,还包括订单的管理和留言板的管理,与前台客户保持密切联系。
一、需求分析
在信息飞速发展的时代,网络信息化管理系统以信息量大、数据准确、速度快、管理全面等优点,在现实生活中得到广泛地应用并不断地更新。电子商务是网络时代的产物,它是指在电子网络上进行商品买卖和服务交易的过程。电子商务包括3类商务交易:第一类是指发生在企业和消费者之间的交易;第二类是指发生在企业和企业之间的交易,从事这种电子商务形式的企业对消费者来说是不可见的;第三类是指消费者与消费者之间的交易。
二、系统分析
(一)可行性分析
1、经济性
电子商务网站的宗旨是根据用户需求和市场形势,提供商品的详细信息,并对商品进行详细分类,方便用户查找和购买所需的商品。
2、技术性
电子商务网站提供购物车和收银台功能,用户选择商品并可以在线提交订单。网站信息管理系统实现对商品信息、用户信息、订单信息以及交易制度等的管理,使网站具有友好的交易界面和良好的管理平台。
(二)功能结构分析和设计
1、项目规划
电子商务网站是一个典型的数据库开发应用程序,由前台展示区和后台管理区组成。
前台功能模块:前台展示区主要功能包括最新商品、会员中心、客户留言、在线帮助、联系我们、站内公告和销量排行,其中会员中心包括会员资料修改、修改密码、购物车、订单查询、消费查询。
后台管理模块:后台功能管理的主要功能包括基本信息管理、商品信息管理、商品分类管理、用户信息管理、订单信息管理、公告信息管理和留言信息管理。
2、系统功能结构图
“来此购”商务网后台管理系统
基本信息管理
商品信息管理
订单信息管理
商品分类信息管理
用户信息管理
留言信息管理
公告信息管理
管理员信息管理
会员制度设置
商品信息添加
商品信息管理
订单信息管理
商品分类管理
查看用户基本信息
查看用户消费信息
查看留言信息
公告信息添加
公告信息管理
图2 后台功能模块结构图
“来此购”商务网前台管理系统
最新商品
客户留言
联系我们
会员中心
销量排行
在线帮助
修改资料
修改密码
购物车
订单查询
消费查询
图1 前台功能模块结构图
站内公告
电子商务网站的前台功能模块结构图和后台功能模块结构图,如图1、图2所示。
(三)系统流程概述
网站管理员
网站访问者
登录
是
进行商品信息管理、订单管理、用户管理、网站信息管理
注册
登录
浏览网站
其他功能模块
会员中心
选择商品
购物车
购买
收银台
是
否
否
否
否
是
是
图3 系统流程图
“来此购”商务网
用户在浏览网站时首先看到的是网站首页。在首页上,用户可以快速浏览最新商品,了解热门商品和推荐商品,也可以搜索商品并查看其具体信息。首页聚集了大量的信息,除了商品还有站内公告和销量排行等信息。如果用户想要购买商品,就必须先注册成为网站会员,在查看完商品的详细信息后就可以把自己想要购买的商品放入购物车中,同时还可以修改或删除购物车里的商品。确定购物车里的商品后,用户就可以去收银台“结账”下订单。这是相关的程序模块会将用户所提交的信息都记录在数据库里,以便商城的管理人员核对信息并在收款后准备发货。如果发货成功并且用户确认收到货物,则此次购物结束。网站的后台管理还包括添加、修改、删除商品,对商品进行分类,对用户信息的管理,对站内公告的设置,对订单的处理等。系统流程图如图3所示。
(四)运行环境
1、硬件平台
CPU:P4 1.8GHZ。
内存:256MB以上。
2、软件平台
操作系统:Windows XP / Windows 7/ Windows 2000 / Windows 2008。
数据库:Microsoft Access。
浏览器:IE6.0,推荐使用 IE8.0。
Web服务器:IIS5.0。
分辨率:最佳效果 1024*768 像素。
(五)小组成员及分工
在确定毕业设计的时间的时候,根据老师的要求组成8个人一个小组,我们小组经讨论确定完成“来此购”商务网项目。根据项目的大小开始设计每个人的角色,分工合作。具体情况如下所示:
黄若飞:小组组长,主要负责整个网站的策划,项目总体设计,开发进度的定制和监控,定制相应的开发规范,网站后台部分代码的开发,各个环节的评审工作,协调各成员之间开发。
李招:小组成员,主要负责网站后台用户、文件上传、图片上传等模块代码的开发,参与网站后台UI部分代码开发,协助小组其他成员的开发。
卢井:小组成员,主要负责网站后台公告、订单等模块代码的开发,参与网站后台UI部分代码开发,协助小组其他成员的开发。
杨正清:小组成员,主要负责网站后台商品分类、商品信息等模块代码的开发,参与网站后台UI部分代码开发,协助小组其他成员的开发。
何乾勇:小组成员,主要负责网站前台商品、在线帮助、搜索等模块代码的开发,参与网站前台UI部分代码开发,协助小组其他成员的开发。
胡云:小组成员,主要负责网站前台公告模块代码的开发,用户模块部分代码的开发,参与网站前台UI部分代码开发,协助小组其他成员的开发。
郭梦华:小组成员,主要负责网站前台用户模块部分代码的开发,参与网站前台UI部分代码开发,协助小组其他成员的开发。
郭琰:小组成员,主要负责网站前台订单模块代码的开发,用户模块部分代码的开发,参与网站前台UI部分代码开发,协助小组其他成员的开发。
三、系统设计
指导思想
系统功能设计本着从用户角度出发的原则,要求实用,且符合用户提出的合理需求。系统设计在不违反系统整体性的基础上,可根据用户的需求进行二次开发,不断完善系统功能能,便于系统的升级。
功能模块设计
1、 数据库设计
tab_goods(商品信息表)
商品信息表用来存储商品的详细信息,tab_goods表的结构如表1所示。
表1 商品信息表tab_goods的结构
字段名称
数据类型
长度
默认值
必填字段
允许空字符串
字符描述
ID
自动编号
唯一标识
Gname
文本
50
是
否
商品名称
Gclass
数字
4
0
是
所属大类
Gmprice
货币
8
0
是
市场价
Ggprice
货币
8
0
是
会员价
Gprovider
文本
50
是
否
提供商
Gaddress
文本
50
是
否
所在地
Gpicture
OLE对象
是
图片资料
Gintro
文本
200
是
否
商品简介
Gdate
日期/时间
8
Data()
是
上架时间
Gstore
数字
4
0
是
库存量
Gsale
数字
4
0
是
销售量
Gcommand
是/否
1
0
是否推荐
tab_user_reg(用户注册信息表)
用户注册信息表用来保存注册用户的基本信息,tab_user_reg表的结构如表2所示。
表2用户注册信息表tab_user_reg的结构
字段名称
数据类型
长度
默认值
必填字段
允许空字符串
字符描述
ID
自动编号
唯一标识
Uname
文本
50
是
否
用户名称
Usex
是/否
1
0
是
性别
字段名称
数据类型
长度
默认值
必填字段
允许空字符串
字符描述
Upassword
文本
50
是
否
密码
Uquestion
文本
50
是
否
密码提示问题
Uanswer
文本
50
是
否
问题答案
Udate
日期/时间
8
Now()
是
注册时间
Urname
文本
50
是
否
真实姓名
Utel
文本
30
是
否
联系方式
Uemail
文本
100
是
否
E-mail
Ucode
文本
20
是
否
身份证号
Uaddress
文本
100
是
否
通信地址
Upcode
文本
10
是
否
邮编
tab_order(订单信息表)
订单信息表用来保存用户提交的订单信息以及处理订单的信息,tab_order表的结构如表3所示。
表3订单信息表tab_order的结构
字段名称
数据类型
长度
默认值
必填字段
允许空字符串
字符描述
ID
自动编号
唯一标识
Ofid
文本
50
是
否
订单号
Uname
文本
50
是
否
用户名
Gname
文本
50
是
否
商品名称
Gnum
文本
50
是
否
数量
Ggprice
文本
50
是
否
单价
Udiscount
双精度型
8
0
是
折扣率
Otransport
文本
50
是
否
运输方式
Omoney
双精度型
8
0
是
应收金额
Oname
文本
50
是
否
收货人姓名
Otel
文本
30
是
否
收货人电话
Oaddress
文本
100
是
否
收货人地址
Opcode
文本
10
是
否
邮编
Oemail
文本
10
是
否
收货人E-mail
Opay
文本
50
是
否
付款方式
字段名称
数据类型
长度
默认值
必填字段
允许空字符串
字符描述
Odate
日期/时间
8
Now()
是
提交时间
Ostate
文本
50
是
否
执行方式
Ointro
文本
100
是
否
备注
tab_rule(交易制度表)
交易制度表用来保存设置的积分,折扣率以及相应会员等级的信息,tab_rule表的结构如表4所示。
表4交易制度表tab_rule的结构
字段名称
数据类型
长度
默认值
必填字段
允许空字符串
字段描述
ID
自动编号
唯一标识
Rintegral
数字
4
0
是
积分设置(元/分)
Rdiscount
数字
4
0
是
这款率(分/折)
Rgrade
数字
4
0
是
会员等级(分/级)
tab_affiche(网站公告信息表)
交网站公告信息用来保存网站公告的基本信息,tab_affiche表的结构如表5所示。
表5网站公告信息表tab_affiche的结构
字段名称
数据类型
长度
默认值
必填字段
允许空字符串
字段描述
ID
自动编号
唯一标识
Aftitle
文本
50
否
否
公告标题
Afcontent
文本
200
否
否
公告内容
Afdate
日期时间
8
Now()
否
添加时间
tab_class(商品分类信息表)
商品分类信息表用来保存商品大分类的基本信息,tab_class表的结构如表6所示。
表6商品分类信息表tab_class的结构
字段名称
数据类型
长度
默认值
必填字段
允许空字符串
字段描述
ID
自动编号
唯一标识
Cname
文本
50
否
否
大分类名称
Cdate
日期/时间
8
Now()
添加时间
tab_lword(留言信息表)
留言信息表用来保存客户留言的基本信息,tab_lword表的结构如表7所示。
表7留言信息表tab_lword的结构
字段名称
数据类型
长度
默认值
必填字段
允许空字符串
字段描述
ID
自动编号
唯一标识
Ltype
文本
50
否
否
留言类型
Ltitle
文本
50
否
否
主题
Lname
文本
50
否
否
留言人
Ltel
文本
30
否
否
联系方式
Lcontent
文本
200
否
否
留言内容
Ldate
日期/时间
8
否
留言时间
tab_manager(管理员信息表)
管理员信息表用来保存网站管理员的基本信息,tab_manager表的结构如表8所示。
表8管理员信息表tab_manager的结构
字段名称
数据类型
长度
默认值
必填字段
允许空字符串
字段描述
ID
自动编号
唯一标识
Mname
文本
50
否
否
管理员名称
Mpasswd
文本
50
否
否
密码
Mgrade
文本
20
普通管理员
否
否
管理权限
Mdate
日期/时间
8
Now()
否
添加时间
tab_user_account(用户账号信息表)
用户账号信息表用来保存用户账号的基本信息信息,tab_user_account表的结构如表9所示。
表9 用户账号信息表tab_user_account的结构
字段名称
数据类型
长度
默认值
必填字段
允许空字符串
字段描述
ID
自动编号
唯一标识
Uname
文本
50
否
否
用户名
Amount
双精度型
8
0
否
消费总额
Atimes
数字
4
0
否
消费次数
Aintegral
双精度型
8
0
否
消费积分
Agrade
数字
4
0
否
消费等级
Adiscount
双精度型
8
1
否
折扣率
2、 数据连接代码 < conn.asp >
<%
'---------- 防止SQL注入 -----------
dim SQL_Injdata
SQL_Injdata =
"'|;|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
SQL_inj = split(SQL_Injdata,"|")
If Request.QueryString<>"" Then
For Each SQL_Get In Request.QueryString
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_Data))>0 Then
Response.end
end if
next
Next
End If
'---------- 连接数据库 ----------
Dim conn,connstr
Set conn=Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;User ID=admin;Password=;Data
Source="&Server.MapPath("../DataBase/db_Ebusiness.mdb")&";"
conn.open connstr
%>
3、 系统主要函数代码 < function.asp>
<%
'---------- 定义转换字符函数 -----------
Function Str_filter(InString)
NewStr=Replace(InString,"'","''")
NewStr=Replace(NewStr,"<","<")
NewStr=Replace(NewStr,">",">")
NewStr=Replace(NewStr,"chr(60)","<")
NewStr=Replace(NewStr,"chr(37)",">")
NewStr=Replace(NewStr,"""",""")
NewStr=Replace(NewStr,";",";;")
NewStr=Replace(NewStr,"--","-")
NewStr=Replace(NewStr,"/*"," ")
NewStr=Replace(NewStr,"%"," ")
Str_filter=NewStr
End Function
'---------- 根据时间获取的字符串 -----------
Function GetOrderNo(dDate)
GetOrderNo = RIGHT("0000"+Trim(Year(dDate)),4)+RIGHT("00"+Trim(Month(dDate)),2)+RIGHT("00"+Trim(Day(dDate)),2)+RIGHT("00" + Trim(Hour(dDate)),2)+RIGHT("00"+Trim(Minute(dDate)),2)+RIGHT("00"+Trim(Second(dDate)),2)
End Function
'---------- 获取随机数函数 -----------
Function randStr(num)
strings="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"
str=split(strings,",")
for i=1 to num
Randomize
str1=str(int((ubound(str))*rnd))
returnstr=returnstr&str1
next
randStr=returnstr
End Function
%>
<script language="javascript">
//----------- 验证数字 ----------
function checkNum(Num){
var Expression=/^[1-9]+[0-9]*$/;
var re=new RegExp(Expression);
if(re.test(Num)==true){
return true;}
else{
return false;}
}
//----------- 验证E-mail地址 ----------
function checkEmail(email){
var Expression=/\w+([-+.']\w+)*\.\w+([-.]\w+)*/;
var re=new RegExp(Expression);
if(re.test(email)==true){
return true;}
else{
return false;}
}
//----------- 验证网址 ----------
function checkUrl(url){
var Expression=/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w-.\/?%&=]*)?/;
var re=new RegExp(Expression);
if(re.test(url)==true){
return true;}
else{
return false;}
}
//----------- 验证身份证号码 ----------
function checkCode(code) {
var Expression=/\d{17}[\d|X]|\d{15}/;
var re=new RegExp(Expression);
if(re.test(code)==true){
return true;}
else{
return false;}
}
//判断输入的日期是否正确
function CheckDate(INDate)
{ if (INDate=="")
{return true;}
subYY=INDate.substr(0,4)
if(isNaN(subYY) || subYY<=0){
return true;
}
//转换月份
if(INDate.indexOf('-',0)!=-1){ separate="-"}
else{
if(INDate.indexOf('/',0)!=-1){separate="/"}
else {return true;}
}
area=INDate.indexOf(separate,0)
subMM=INDate.substr(area+1,INDate.indexOf(separate,area+1)-(area+1))
if(isNaN(subMM) || subMM<=0){
return true;
}
if(subMM.length<2){subMM="0"+subMM}
//转换日
area=INDate.lastIndexOf(separate)
subDD=INDate.substr(area+1,INDate.length-area-1)
if(isNaN(subDD) || subDD<=0){
return true;
}
if(eval(subDD)<10){subDD="0"+eval(subDD)}
NewDate=subYY+"-"+subMM+"-"+subDD
if(NewDate.length!=10){return true;}
if(NewDate.substr(4,1)!="-"){return true;}
if(NewDate.substr(7,1)!="-"){return true;}
var MM=NewDate.substr(5,2);
var DD=NewDate.substr(8,2);
if((subYY%4==0 && subYY%100!=0)||subYY%400==0){ //判断是否为闰年
if(parseInt(MM)==2){
if(DD>29){return true;}
}
}else{
if(parseInt(MM)==2){
if(DD>28){return true;}
}
}
var mm=new Array(1,3,5,7,8,10,12); //判断每月中的最大天数
for(i=0;i< mm.length;i++){
if (parseInt(MM) == mm[i]){
if(parseInt(DD)>31){return true;}
}else{
if(parseInt(DD)>30){return true;}
}
}
if(parseInt(MM)>12){return true;}
return false;}
</script>
4、 级联样式表(CSS)< css.css>
body,td,th{font-size:12px}
.textbox{border-bottom:1px solid #999999;border-left:1px solid
#999999;border-right:1px solid #999999;border-top:1px solid #999999;height:18px}
.button{border-bottom:1px outset #999999;border-left:1px outset
#999999;border-right:1px outset #999999;border-top:1px outset #999999;}
.font_white{color:#FFFFFF; font-weight:bold}
.font_yellow{color:#FFFF00; font-weight:bold}
.font_blue{color:#0000FF; font-weight:bold}
.font_gray{color:#6A7275; font-weight:bold}
a{text-decoration:none}
a:hover{color:#D65746}
5、 部分代码(黄若飞负责)
后台管理主页<index.asp>
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="checklogin.asp"-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>电子商务网站----后台管理</title>
</head>
<frameset rows="93,*,35" frameborder="NO" border="0" framespacing="0">
<frame src="frame_top.asp" name="topFrame" scrolling="NO" noresize>
<frameset cols="190,*" frameborder="NO" border="0" framespacing="0">
<frame src="frame_left.asp" name="leftFrame" scrolling="yes" noresize>
<frame src="frame_right.asp" name="mainFrame">
</frameset>
<frame src="frame_bottom.asp" name="bottomFrame" scrolling="NO" noresize>
</frameset>
<noframes><body>
</body></noframes>
</html>
管理员登录<login.asp>
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
Response.Buffer=true
Response.Expires=0
Response.ExpiresAbsolute=Now()-1
Response.CacheControl="no-cache"
%>
<!--#include file="include/conn.asp"-->
<!--#include file="include/function.asp"-->
<%
If Not Isempty(Request("login")) Then
txt_name=Str_filter(Request.Form("txt_name"))
txt_passwd=Str_filter(Request.Form("txt_passwd"))
If txt_name<>"" Then
Set rs=Server.CreateObject("ADODB.Recordset")
sqlstr="select Mname,Mpasswd,Mgrade from tab_manager where
Mname='"&txt_name&"'"
rs.open sqlstr,conn,1,1
If rs.eof Then
Response.Write("<script lanuage='javascript'>alert('管理员名称不正确,请核实后重新输入!');location.href='login.asp';</script>")
Else
If rs("Mpasswd")<>txt_passwd Then
Response.Write("<script lanuage='javascript'>alert('密码不正确,请确认后重新输入!');location.href='login.asp';</script>")
Else
Session("Mname")=rs("Mname")
Session("Mgrade")=rs("Mgrade")
Response.Redirect("index.asp")
End If
End If
Else
errstr="请输入管理员名称!"
End If
End If
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>电子商务网站----管理员登录</title>
<link rel="stylesheet" href="css/css.css">
<script type="text/javascript">
<!--
function Mycheck(){
if(document.all.txt_name.value==""){
alert('请输入管理员名称!');return false;}
if(document.all.txt_passwd.value==""){
alert('请输入密码!');return false;}
if(document.all.verifycode.value==""){
alert('请输入验证码!');return false;}
}
-->
</script>
<style type="text/css">
<!--
.style1 {color: #CCCCCC}
-->
</style>
</head>
<body topmargin="120px">
<table width="544" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><img src="images/login_05.gif" width="546" height="98"></td>
</tr>
<tr>
<td height="150" background="images/login_07.gif"> <table width="70%"
border="0" align="center" cellpadding="5" cellspacing="0">
<form name="form1" method="post" action="">
<tr>
<td width="36%" height="35" align="right">管理员:</td>
<td width="64%" height="35"><input name="txt_name" type="text" class="textbox" id="txt_name" size="18" maxlength="50"></td>
</tr>
<tr>
<td height="35" align="right">密
展开阅读全文