电子商城系统毕业论文

更新时间:2024-05-23 01:06:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

中国石油大学胜利学院

第一章 前 言

随着Internet的迅猛发展,电子商务已逐渐走向千家万户,它已经开始影响人们的日常生活的各个方面,同时我们也开始意识到其中蕴含的巨大商机及商业价值,并开始投身于电子商务活动。电子商务可以通过IE浏览器,实现消费者的网上购物,卖家及中介人之间的交易,它是在线网银支付的一种新型商业运营模式。电子商务是网络技术应用的全新发展方向。Internet本身所具有的开放性、全球性、低成本、高效率的特点,也成为电子商务的内在特征,并使得电子商务大大超越了作为一种新的贸易形式所具有的价值。它不仅会改变企业本身的生产、经营、管理活动,而且将影响到整个社会的经济运行与结构。电子商城的崛起对传统的购物方式体系产生了强烈的冲击,有效地缩短了货物发行环节,将广大消费者和营销商紧密地结合在一起,大大提高了物质流通率。

淘宝网以及当当网已经为我们做出了巨大的榜样,它也告诉我们,在网上开设商城是完全可行的,电子商城利用网络这个平台出售各式各样的货物,其中包括电子产品,食品,化妆品,服装,宠物等,实现了坐在家里就可以轻松购物。顾客可以通过网站浏览到各式商品,使用网银直接选购其所需要的商品,通过邮政部门以及各个快递公司把货物送到顾客家中。购物网站的优点是购物的便捷和快速,提高了购物效率。顾客也可以给店主留言,写下意见和感想。

目前,中国网民已经突破2亿大关,网站数量已达到131万个,其中16.7%的网民经常访问购物网站,随着国内上网费用的下调以及网速的大幅度提高,浏览购物网站的网民总数也会稳步提升。由此可见在网上开商城已经是大势所趋的。

通过以上数据,我们可以欣喜的发现在网上开设商城的优势:(1)投资少,见效快;(2)销售时间不受限制;(3)销售地点不受限制。

本次毕业设计主要是使用HTML基本语言,ASP、Vbscript脚本语言、DREAMWEAVER等设计网页,使用数据库知识(ACCESS)设计数据库,使用SQL语句完成查询,修改,删除数据等功能,最后完成整个电子商城系统的调试。

1

中国石油大学胜利学院

第二章 设计方案

本次毕业设计使用的ASP(Active Server Pages),它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不必使用微软的产品就能编写它的代码,也可以产生和执行动态、交互式、高效率的服务器应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。ASP容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由于脚本在服务器上而不是在客户端运行,ASP所使用的脚本语言都在服务器上运行,用户端的浏览器不需要提供任何别的支持,这样大大提高了用户与服务器之间的交互的速度。此外,它可通过内置的组件来实现更强大的功能,如使用ADO就可以轻松地访问数据库。

此次电子商城系统采用B/S(浏览器/服务器)模式开发,在此模式下,用户主要通过客户端浏览器浏览系统的工作界面,极少部分事务在浏览器端(Browser)实现,主要事务在服务器端(Server)实现。这种模式通过IE通信,不受地域的限制。从而减轻了系统维护和升级的成本和工作量,降低了用户的总体成本。

电子商城系统的特点是用户在客户端登陆系统,然后浏览,管理或购买系统中的商品。该系统面向的用户是不确定的。如果要求用户下载安装软件才能浏览商品,会增加用户浏览商品的难度,大大减少用户数量。电子商城系统应该支持跨平台管理,其用户不必下载安装软件。B/S模式支持跨平台操作,只需安装浏览器即可。因此电子商城系统利用这种模式实现。从而为不同用户提供了统一的界面,使得界面易于维护。

随着Microsoft公司的不断改进和完善,ACCESS正逐渐成为目前最为方便的中小型数据库管理系统。ACCESS支持的SQL指令非常齐全。同时ACCESS驱动程序的执行效率非常高。使用ACCESS数据库开发系统易于开发者掌握并解决可能发生的问题。

基于以上原因在本次设计中使用ASP+ACCESS来实现本课题。

2

中国石油大学胜利学院

第三章 电子商城系统的设计与分析

3.1 电子商城系统简介

该电子商城系统是基于WEB开发的,以构建网上产品购物网站为目标,由前台购物、后台管理两大部分组成。

电子商城系统主要实现用户注册、用户登录、分类浏览商品、查看商品介绍、购物车、在线购买、商品的评价、商品的投诉以及商品管理、会员管理等功能。

根据这些功能要求,将整个系统分为两大部分:一部分是用户使用部分,包括用户登录、分类浏览,购买商品,在线支付等;另一部分是后台管理部分,这部分功能必须通过管理员身份验证才能使用,包括商品管理、商品投诉管理和会员管理,客户也可以通过论坛来提出意见和建议。电子商城系统就是要通过方便快捷的功能、简洁明了的界面、完善的后台管理来满足服客户的需要。

3.2 软件目标设计

(1)系统的用户登录和身份验证;

系统允许用户注册,注册的用户需要身份验证才能发布商品; 用户进入系统时,需要进行身份验证; 只有特定权限的用户才能进入特定权限的界面。 (2)在线销售商品:

无论是注册用户,还是未注册用户都允许浏览所有商品,并查看所有商品的详细信息;

无论是注册用户,还是未注册用户都允许按类别查找商品; 允许注册的用户通过在线付款形式购买商品;

系统为注册用户提供购物车,并允许用户管理购物车。 (3)在线管理商品:

3

中国石油大学胜利学院

只有管理员才可以在线管理商品,即管理商品时需要验证管理员身份; 不同级别的管理员只能管理相应的商品,如系统管理员可以管理系统中所有的商品,一般管理员只能管理自己上传的商品。 (4)在线管理用户:

系统管理员可以添加,验证和查询用户; 系统管理员可以修改系统中的任何用户信息; 系统管理员可以删除任何用户。 (5)在线管理公告:

系统管理员可以添加公告; 系统管理员可以修改公告; 系统管理员可以删除公告。

3.3 设计原则

软件系统开发设计原则一般包括以下四个方面: (1)经济,实用的原则; (2)兼容性原则; (3)可靠,有效性原则; (4)安全性原则。

由于本电子商城系统只是一个毕业设计作品,要成为可行性系统还需要很多改进。因此,在本系统的开发过程中,并没有象上面提到的那样严格地按照要求来进行制作开发,只是在对网上购物网站了解的基础上,尽可能地使本系统所完成的工作符合实际。另外考虑到了系统的易操作性,因此在系统的界面设计过程中,尽可能地为用户提供了一个友善、清晰简洁的网络界面。

3.4 设计思路

本课题为电子商城系统的软件设计,在图书馆关于该课题的信息比较多,所

4

中国石油大学胜利学院

以在对它进行总体设计的时候,首先对ASP的6大对象做了几周的学习,了解了其中各大对象的一些属性和方法。又花了一些时间学习SQL语句,用ACCESS对后台数据库进行了设计。在完成数据库的设计后,开始对网站页面进行设计。对用户权限以及网站的安全性进行了考虑,使用DoChar()函数屏蔽了一些特殊的字符,如一些非法用户会在IE地址栏键入一些SQL语句非法连接数据库,正是使用此函数把一些非法的字符替换成空格符输出,以及在数据库的设计中加入Check字段来检测用户是否为验证用户,非验证用户只能浏览网站的部分功能。最后,在基本功能实现以后,再对网站进行反复地测试和修改,以期望达到最好的效果。

3.5 需求分析

该系统是基于B/S(浏览器/服务器)架构的系统,主要完成商品的浏览,购买,以及在后台管理商品;新闻公告的添加、删除、修改(更新),会员的在线购物用户在论坛上抒发自己的感想等。此系统分为前台购物和后台管理。前台购物是友好的操作界面,供用户注册、浏览、订购商品;后台管理是提供给管理员的,其中包括:商品管理、用户管理、公告管理等。使管理员从繁琐的手工操作中解脱出来,并提高了工作效率。

按照系统功能的实现,本系统可以划分为以下几个功能模块:管理用户模块,管理商品模块,管理商品类别模块,管理商品投诉模块,管理公告模块等。管理用户模块包括了用户注册和验证,修改用户信息,修改用户密码以及删除用户。管理商品模块包括商品上传,修改商品信息,删除商品,增加商品图片,以及修改和删除商品的销售记录和浏览记录。管理商品类别模块包括添加,修改,删除商品类别等功能。管理商品投诉模块包括回复商品投诉,解决商品投诉问题和删除商品投诉,商品投诉需要保存商品的编号,购买商品的订单号及购买时间等信息。管理公告模块包括添加,修改,删除公告,公告包括公告的标题,公告的内容,以及发布时间等信息。由于电子商城的商品数量可能非常庞大,因此在商品浏览上,使用了分页浏览导航。用户可以通过点击上一页、下一页、首页、尾页进行分页浏览。

该系统对可靠性、易维护性、安全性、可操作性等性能有较高的要求。可靠性----要求系统在发生故障或输入数据不合理等情况下有较高的要求;易维护性---系统的变更(因系统需求变化和弥补系统缺陷而引起)要简单易行;安全性

5

中国石油大学胜利学院

---本系统所处理的数据都要具有实际意义,不能随意存取和改动。因此,必须对系统数据的存取和改动进行控制,对系统数据进行有效的保护,以杜绝对数据的非法操作和防止计算机病毒的破坏;可操作性----本系统的操作人员是一般管理人员而非计算机专业人员,为使本系统有效地发挥作用,要求本系统容易理解,人机界面简明、清晰、直观,功能实用,操作简单方便,上机培训量小。此外,系统还需有较快的响应速度,以尽量减少工作人员的等待时间。

根据前台用户的需求,画出以下E-R图:

实体类型 实体间联系 图3.1 ER图的元素说明

6

属性

中国石油大学胜利学院

数量 用户名 密码 用户编号 总金额 货存 商品编号 订购 类型编号 用户 1 地址 权限 n 商品信息 m m 价格 商品名称 发布 属于 m 公告信息 1 商品类型 用户编号 公告内容 类型编号 类型名称

图3.2 电子商城系统ER图

将用户与商品信息表通过订购关系相联系,可以将此m:n二元联系转换为关系模型。关系模型为:

用户(用户编号,密码,用户名,权限,地址); 商品信息(商品编号,类型编号,商品名,价格,货存) 订购(用户编号,商品编号,数量,总金额)

将用户与商品信息表通过投诉关系相联系,可以将此m:n二元联系转换为关系模型。关系模型为:

用户(用户编号,密码,用户名,权限,地址); 商品信息(商品编号,类型编号,商品名,价格,货存)

7

中国石油大学胜利学院

通过以上的分析可知,该系统拥有用户、商品类别、商品、订单、投诉和公告的实体,其中实体对应数据库的表,属性对应表中的字段,关系对应表之间的联系。

3.6 系统概要设计

在软件需求分析阶段,搞清楚了软件“做什么”的问题。现在所要做的就是要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现软件的需求。首先,需要描述的是系统的总的体系结构。 3.6.1 系统结构设计

系统的概要设计中最重要的就是系统的模块化。模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能。所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。

将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性、可维护性,但模块的划分不能是任意的,应尽量保持其独立性。也就是说,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少,而且接口简单,即尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。在系统概要设计中采用结构化设计(Structure Design,简称SD),SD以需求分析阶段产生的数据流图DFD为基础,按照一定的步骤映射成软件结构。首先将整个系统划分为几个小问题、小模块。在本系统中,设计了浏览公告模块,浏览商品模块,购买商品模块,商品投诉模块,用户注册模块,公告管理模块,商品管理模块,订单管理模块,投诉管理模块,用户管理模块,网站计数器模块。 3.6.2 功能模块规划及分析

为了便于电子商城系统的设计开发,根据系统功能要求,使用了模块化设计,整个电子商城系统可以分为以下11个功能模块:

■浏览公告模块:此模块实现前台的公告信息浏览,无权限限制,注册用户和非注册用户都可以浏览公告。

■浏览商品模块:此模块实现前台的商品及商品信息浏览,无权限限制,注

8

中国石油大学胜利学院

册用户和非注册用户都可以浏览商品,并查看所有商品信息。

■购买商品模块:此模块专门提供给注册用户以及其以上级别的用户使用,允许注册的用户通过在线付款形式购买商品,系统为注册用户提供购物车,并允许用户管理购物车,系统为通过验证的用户提供订单管理功能,并允许这些用户处理相应的订单。

■商品投诉模块:此模块专门提供给注册用户以及其以上级别的用户使用,允许购买此商品的用户对商品进行投诉,同时由管理员提出解决方案。

■用户注册模块:此模块包括会员的注册,相关资料的填写,以及用户的登陆,资料的修改。

■公告管理:此模块专门提供给管理员使用,系统管理员可以添加公告, 系统管理员可以修改公告,系统管理员可以删除公告。

■商品管理模块:此模块中只有管理员才可以在线管理商品,即管理商品时需要验证管理员身份,不同级别的管理员只能管理相应的商品,如系统管理员可以管理系统中所有的商品,一般管理员只能管理自己上传的商品。

■订单管理模块:不同级别的管理员只能管理相应的订单,如系统管理员可以管理系统中所有商品的订单,一般管理员只能管理自己上传商品的订单。

■投诉管理模块:任何购买了商品的用户都可以发表对购买商品的投诉,只有管理员才可以删除已经回复的投诉,管理员可以处理投诉,也可以通过回复投诉来解决问题。

■用户管理模块:系统管理员可以添加,验证和查询用户,系统管理员可以修改系统中的任何用户信息,系统管理员可以删除任何用户。

在各个模块的设计中注重它们之间的相对独立性,减少它们之间的耦合,减轻模块化设计的难度。各模块的关系见图3.5系统功能模块图所示。

9

中国石油大学胜利学院

电子商城系统

前台购物 后台管理 购浏购商用广分商订评用发 物览买品户告 类品单价户布车 商商评注显管管管管管广 品 品 价 册 示 理 理 理 理 理 告

图3.5 系统功能模块图

第四章 系统数据库的设计

4.1 数据库的概念结构设计

根据系统的需求分析和数据库的需求分析,同时根据相关部分的数据流程图,对系统数据库进行概念结构设计。

根据数据关系模型和数据库关系模式的范式,我们创建了电子商城系统数据表,本系统共有9个数据表,分别是:用户信息表(users),商品类型表(GoodType),商品信息表(Goods),计数器信息表(webcount),订单信息表(Shop_list),公告信息表(Board),用户投诉表(Complain),论坛基本信息表(bbsconfig),论坛留言回复信息表(reforum)。 4.1.1 建立数据库的原则

在建立数据库时,由于表中储存信息的不同,所以表中所需的字段也不一样,在确定所需字段时有以下五个原则:

1.描述不同主题的字段应属于不同的表,通过定义之间的关系,可以将多个表中的字段进行数据组合,生成各种表单或报表;

10

中国石油大学胜利学院

2.不要在表中储存通过推导或计算得到的数据;

3.收集所需的全部信息。应全面检查书面的表单和报表,确定所需的数据都已包含在所设计的表中或可以由这些表计算出来;

4.以最小的逻辑单位储存信息,应尽量把信息分解成比较小的逻辑单位; 5.对于主关键字段,ACCESS不允许其有重复值或NULL值。

4.1.2 建立字段的原则

在实际选择和确定数据类型时,应结合字段的自身情况并考虑以下四点: 1.该字段用于储存什么类型的值; 2.要对字段中的值执行什么类型的运算; 3.是否要用字段进行筛选或排序; 4.是否用字段对记录进行分组。

4.2 数据库逻辑结构设计

数据库的概念结构设计完毕后,可以将数据库概念结构转化为某种数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。

在电子商城系统中,共有9个数据表,分别是:用户信息表(users),商品类型表(GoodType),商品信息表(Goods),计数器信息表(webcount),订单信息表(Shop_list),公告信息表(Board),用户投诉表(Complain),论坛基本信息表(bbsconfig),论坛留言回复信息表(reforum)。

用户信息表(users)信息见表4-1所示。

表4-1 用户信息表

字段名称 数据类型 字段大小 默认值 是否允许为空 字段描述 ID 主键 自动编号 4 无 否 用户编号 11

中国石油大学胜利学院

UserId 文本 12 无 否 用户名 PWD 文本 12 无 否 用户密码 Sex 是/否 1 无 否 性别 Address 文本 100 无 否 地址 Email 文本 30 无 是 邮箱 Telephone 文本 20 无 否 电话 Allow 数字 1 无 否 用户类别权限 Usercheck 是/否 1 无 否 用户是否通过验证 创建该表时,需要创建一个系统管理员admin。本系统系统管理员的Allow字段为“1”,普通管理员为“2”,普通注册用户为“3”。

Usercheck=0,未验证用户;=1,已验证用户。 商品类型表(GoodsType)信息见表4-2所示。

表4-2 商品类型表

字段名称 数据类型 字段大小 默认值 是否允许为空 字段描述 ID 主键 自动编号 4 无 否 商品类别序号 Name 文本 20 无 否 商品类别名称 Type 文本 20 无 否 商品类型 商品信息表(Goods)信息见表4-3所示。

表4-3 商品信息表

字段名称 数据类型 字段大小 默认值 是否允许为空 字段描述 12

中国石油大学胜利学院

ShopID 主键 自动编号 4 无 否 商品编号 TypeID 文本 10 无 否 类别序号 UserID 文本 12 无 否 用户名 Name 文本 20 无 否 商品名称 Producer 文本 50 无 是 生产商 Package 文本 30 无 是 包装型号 Price 数字 8 无 否 进货价格 Saleprice 数字 8 无 否 销售价格 折扣 数字 4 无 是 折扣 Content 文本 200 无 是 商品说明 PostTime 日期/时间 8 无 是 上传时间 库存 数字 4 无 否 商品库存数量 ReadCount 数字 4 无 是 商品被浏览次数 BuyCount 数字 4 无 是 商品被购买次数 ImageFile 文本 30 无 是 商品图片名称和路径 GoodsCheck 是/否 1 无 否 商品是否通过验证

计数器信息表(webcount)信息见表4-4所示。

表4-4 计数器信息表

13

中国石油大学胜利学院

字段名称 数据类型 字段大小 默认值 是否允许为空 字段描述 count_id 主键 自动编号 4 无 否 计数编号 count_ip 文本 15 无 否 客户IP count_time 日期/时间 8 Now() 否 访问时间 计数器信息表包含了计数编号(count_id)、客户IP(count_ip)和浏览人访问时间(count_time),其中计数编号(count_id)为关键字,数据类型为自动编号,如此在添加数据时会自动加上一个单独的编号而不重复。浏览人访问时间(count_time)的默认值为 Now(),如此我们即能在添加数据时利用这个函数自动获取浏览人进入网站的时间,并自动存入数据表当中。

订单信息表(Shop_list)信息见表4-5所示。

表4-5 订单信息表

字段名称 数据类型 字段大小 默认值 是否允许为空 字段描述 OrderSn 主键 自动编号 4 无 否 订单号 UserID 文本 12 无 否 购买商品的用户编号 ShopName 文本 20 无 否 购买商品的名称 ShopID 数字 4 无 否 商品编号 Cost 数字 8 无 否 商品单价 Num 数字 4 无 否 商品购买数量 折扣 数字 4 无 否 折扣 14

中国石油大学胜利学院

TotalCost 数字 8 无 否 购买商品总价 OrderTime 日期/时间 8 无 否 购买时间 ShopCheck 数字 1 无 否 订单处理类型 YIFUKUAN 数字 8 无 否 已付款金额 ShopCheck=0,未处理订单;=1,已处理订单。 公告信息表(Board)信息见表4-6所示。

表4-6 公告信息表

字段名称 数据类型 字段大小 默认值 是否允许为空 字段描述 ID 主键 自动编号 4 无 否 公告编号 Title 文本 20 无 否 公告的标题 Content 文本 200 无 否 公告的内容 PostTime 时间/日期 8 无 否 发布公告时间 UserID 文本 12 无 否 发布公告的用户编号 用户投诉表(Complain)信息见表4-7所示。

表4-7 用户投诉表

字段名称 数据类型 字段大小 默认值 是否允许为空 字段描述 ID 主键 自动编号 4 无 否 投诉编号 UserID 文本 12 无 否 发布投诉的用户编号 ShopID 数字 4 无 否 用户投诉的商品编号 15

中国石油大学胜利学院

PostTime 时间/日期 8 无 否 发布投诉的时间 Content 文本 200 无 否 投诉内容 Result 文本 200 无 否 投诉所反映问题的解决方案 Flag 数字 1 无 否 投诉的解决状态 Flag=0,表示未解决用户问题,Flag=1表示解决用户问题。 论坛基本信息表(bbsconfig)见表4-8所示

表4-8 论坛基本信息表

字段名称 数据类型 字段大小 默认值 是否允许为空 字段描述 ID 主键 自动编号 4 无 否 用户编号 bbsname 文本 20 无 否 论坛名称 moderated 文本 12 无 否 论坛版主 info 文本 50 无 否 论坛介绍 pass 数字 1 无 否 论坛访问权限 hide 数字 1 无 是 隐藏论坛 lasttopic 文本 30 无 是 最后发布主题 lastname 文本 12 无 否 最后发帖人的名称 lasttime 日期/时间 8 无 否 最后发帖人的时间 论坛留言回复信息表(reforum)见表4-9所示

表4-9 论坛留言回复信息表

16

中国石油大学胜利学院

字段名称 数据类型 字段大小 默认值 是否允许为空 字段描述 ID 主键 自动编号 4 无 否 留言编号 topicid 文本 4 无 否 主题序号 userid 文本 12 无 否 用户名 content 文本 200 无 否 回复内容 posttime 日期/时间 8 无 否 回复时间

第五章 系统功能与模块的设计实现

当对数据表的设计完成后,即要对系统功能和模块进行设计。在本次设计中,主要通过Dreamweaver,利用ASP中的Request(主要实现获取表单中的数据),Response(主要实现输出相关内容),Server(主要实现文件相关路径的设置以及建立Connection对象),Session(主要实现用户信息的存储以及购物车的实现)几大对象的属性和方法,以及SQL语句,IF?else语句来编写,完成系统功能和模块的设计以及界面的设计。数据库ACCESS和ASP通过ADO来实现链接,ADO使用内置的RecordSets对象作为数据的主要接口。利用SQL语句完成数据的查询,筛选,分组等功能。

5.1 创建数据库

打开ACCESS,通过菜单中的新建,然后选择新建空数据库,设置好数据库名。根据数据库的逻辑结构设计,选择使用设计器创建表来创建各个模块所需的数据表。

17

中国石油大学胜利学院

5.3 系统模块的设计与实现

5.3.1 系统的界面与导航条的设计

电子商城系统给人的第一印象关键就在于界面,而可用性与易用性与导航条的设置有很大关系。本系统的界面风格包含在top.asp文件中,版权信息等包含在bottom.asp文件中,登录界面,搜索界面包含在left.asp中,商品分类,最新投诉,热卖商品,关注商品包含在right.asp中。各模块中的文件几乎都调用了top.asp和bottom.asp来统一界面风格,使得整个网站界面更加简洁、友好。top.asp如图5.1所示,导航条界面。系统主页面index.asp调用了top.asp, bottom.asp,left.asp,right.asp。

图5.1 top.asp导航条界面

5.3.2 数据库的连接

主数据库,以及计数器采用以下代码连接

Set Conn=Server.CreateObject(\

Conn.ConnectionString=\Source=\

Conn.open

其中,Server.CreateObject的功能是建立Connection对象,Server.Mappath的功能是找到数据库的路径。 5.3.3 注册和登录模块

用户在购物系统的主页上,单击“注册”连接,如图5.2,注册信息保存在user/UserReg.asp。

18

中国石油大学胜利学院

图5.2 注册用户界面

处理注册信息的文件为UserInsert.asp,实现流程如下。

(1)获取注册信息。获取注册信息主要利用Request对象的Form集合,获取表单中的用户名和密码,以及性别,联系电话,手机,主要实现代码如下:

username=trim(Request.form(\pwd=trim(Request.form(\tel=Request.form(\

(2)检查注册信息是否完整。主要通过If?else语句检测表单中的数据是否为空。例如:

If username=\用户姓

19

,,

,email=Request.form(\

中国石油大学胜利学院

名不能为空!
\,当用户名为空时,提示出错信息,以此类推,检测密码。检测邮箱格式代码为:n=Instr(email,”@”) 确认@位置,没有该符号,说明邮箱格式有误。if n>0 then m=instr(n,email,.) 如果有@,去判断@后是否有符号 .,不存在,则认为电子邮件域名错误。If m>=len(email) then result=”email格式有误” End if 。

(3)检查是否存在该用户名.利用SQL语句:

Set rs = Conn.Execute(\\

If Not rs.Eof Then 假如指针没有指向最后一个记录集,已经在表中的字段找到相同的ID,则弹出对话框“已经存在此用户名”

(4)添加新用户,利用SQL语句: sql=\

into

Users(UserID,PWD,UserName,Sex,Address,Email,Telephone,Mobile,Allow) values('\mail&\r&\

5.3.4 用户管理中心模块

用户登录后,网站主页的左侧显示用户管理中心界面,如图5.3

20

中国石油大学胜利学院

图5.3 用户管理中心界面

其中功能有更改资料,更改密码,客户投诉,我的投诉,管理界面,购物车,退出登录。 1.更改信息界面

该界面和用户注册界面相似,只不过界面的每个部分设置了用户信息。如图5.4

图5.4 更改用户信息界面

其中关键性代码为:

sql = \* From Users Where UserId='\&\and PWD='\设置查询语句,为了保证安全需要密码和用户名都一致才可以修改。

处理修改用户信息的文件为UserInsert.asp,实现流程如下:

21

中国石油大学胜利学院

(1) 获取修改后的用户信息。

(2) 检查用户信息是否完整,如果不完整,返回错误提示信息。 (3) 修改数据库中用户信息。

其中用了SQL的更新语句,以及用到了Request对象和Session对象。 sql=\

Users

Set

UserName='\

\

\

\&TypeUser&\

Where UserId='\&\用此时在表格中获取的数据去更新Users表中的相应字段,条件是只更新指定的UserId。

Session(\Session(\

Session(\用此时表单中获取的数据,去替代服务器中session此时保存的数据。 2.更改密码界面

单击“更改密码”链接,进入修改密码界面,如图5.5

22

中国石油大学胜利学院

图5.5 更改用户密码界面

修改用户密码需要用户输入原来的密码,并输入两次新密码。电子商城系统验证当前用户名和当前密码是否一致,代码如下:

sql = \PWD='\设置验证用户密码和用户名是否一致。

Set rs = Conn.Execute(sql) 执行SQL语句。

If rs.EOF Then 指针指向最后一个位置,仍未发现一致的字段,则不能修改。

Response.Write \你无权修改!\

文件ResetPwd.asp完成密码修改功能,实现流程如下。 (1) 获取密码。

UserId= request.queryString(\获取用户名。

oldpwd= trim(Request.form(\获取表单中输入的密码。 (2) 检查输入密码

newpwd=trim(Request.form(\获取新密码。

If newpwd=\用户密码不能为空!
\新密码不能为空。

confirmpwd=trim(Request.form(\获取输入的确认密码。 If confirmpwd<>newpwd Then result=result&\两次输入的密码不同!
判断确认密码是否和输入的新密码相同。

(3) 更新密码 Conn.Execute(\

users

set

PWD='\

where

UserId='\更新表users中的密码,条件是只更新获取的用户名。

Session(\把此时获得的用户名,去更新Session中保存的用户名。

23

中国石油大学胜利学院

Session(\= newpwd 把此时获得的密码,去更新Session中保存的密码。 3.购物车界面

购物车即用户所选中,但尚未付款成交的商品。用户所选的商品保存在shop_list表中,User字段为保存购买商品的用户,check字段保存商品是否成交的信息。因此通过查询该表中User字段为当前用户,且字段Check0(0表示为未成交)的记录,即可获知用户所买的商品。购物车界面如图5.6:

图5.6 购物车界面

(1) 查询用户所选中的商品。这些商品保存在shop_list表中,并且ShopCheck字段的值为“0”。

Sql=\

ID,User,ShopName,Cost,Num,TotalCost,

扣,Time,ShopCheck,OrderNumber FROM shop_list WHERE ShopCheck=0 and user='\列举需要显示的字段,查询用户所选中的商品。

set rs=Conn.Execute(Sql) 执行SQL语句。

(2) 判断是否存在所选商品。如果查询的结果为空,则该用户没有打算购买的商品。

If rs.EOF Then 如果指针知道最后一个位置,仍然找不到符合要求的记录,

24

中国石油大学胜利学院

则提示购物车内没任何商品

Response.Write \购物车内没任何商品!

\HREF='GoodsList.asp'>产品类型

\

(3) 显示表格的标题。购物车界面以字段名称为表格的标题。

For I = 0 To rs.Fields.Count – 1 列举所有字段名称,字段的序号和名称保存在Fields字段中。

If rs.Fields(I).Name<>\为安全起见,不显示ID字段 Response.Write \

End If

Next

Response.Write \删除\(4)显示购物车内商品信息的代码如下:

For I = 0 To rs.Fields.Count – 1 列举所有字段名称,字段的序号

和名称保存在Fields字段中。

If rs.Fields(I).Name=\字段名为shopcheck时。 If rs.Fields(I).Value=1 Then 当shopcheck=1,订单已处理。 Data = Data & \订单已处理\

ElseIf rs.Fields(I).Value=0 Then 当shopcheck=0时,订单正处理。 Data = Data & \订单正处理\ End If

ElseIf rs.Fields(I).Name<>\为安全起见,不显示ID字段。 Data = Data & \ End If

25

中国石油大学胜利学院

Next

Response.Write Data

Response.Write \删除\链接delete.asp,传递ID字段信息。 Total = Total + rs(\总价打八折。

26

中国石油大学胜利学院

开始 商品浏览 N 用户登录 Y 购买商品 N 购物车 Y N 发送信息 发送购买数量,总价格,及折扣等信息 N 购物确认 Y Y 在线支付 Y 购物完成

图5.7 浏览和购买商品模块程序流程图

27

中国石油大学胜利学院

5.3.5 商品查询界面

商品的简单查询依据商品类别和名称查询所有符合条件的商品。并为用户显示查询结果的详细信息和简略信息其界面如图5.8

图5.8 简单查询界面

显示的详细信息和简略信息分别如图5.9和图5.10

图5.9 详细信息界面

28

中国石油大学胜利学院

图5.10 简略信息界面

简单查询界面设置在首页上,方便了用户的查询。该界面主要包含商品类型和商品名称。商品类别通过GoodsType表获取,实现代码如下:

sql = \设置查询商品类别信息的SQL语句。 Set rs=Conn.Execute(Sql)

If Not rs.Eof Then 判断是否存在商品,存在则把商品加入下拉列表框。 Do While Not rs.Eof

简单查询功能主要由Search.asp实现,实现流程如下。 (1) 获取查询条件。 (2) 生成查询条件。

typeid= Trim(Request(\获取商品类型编号。

If typeid=\如果商品类型编号为空,显示所有商品信息。 typeid=\ End If

If typeid<>\如果商品类型不为所有类型,则查询指定商品序号。

29

中国石油大学胜利学院

SearchSql = SearchSql&\ End If

gname = Trim(Request(\获取待查询商品名称。

If Not(isNull(gname) Or Len(gname)=0) Then 不为空,则在数据库中查询与输入字段相同的商品名称。

SearchSql = SearchSql &\ End If

(3) 执行查询。 (4) 显示商品信息。

Set rs= Conn.Execute(Sql) 显示页中所有记录。

For i=1 to nPageSize 如果当前页为最后一页,该页显示的记录数目可能小于规定的记录数目,因此当当前记录为最后一条记录时要终止显示。

If rs.EOF Then Exit For

If i=1 Then nCurseStart=rs.Fields(\

nCurseEnd=rs.Fields(\

<%=rs(\

href=\

<%=rs(\元 5.3.6 信息统计

电子商城系统提供了两种信息统计方法,即销售统计和浏览统计。通过这两种方法,用户可以方便地查看各种商品的销售和浏览情况,指导自己的购买行为。

30

中国石油大学胜利学院

销售排行榜依据商品的购买次数进行降序排序,即购买次数多的商品排在前面,购买次数少的商品排在后面。商品保存在goods表中,其中BuyConut字段保存商品的销售数量,通过查询该字段的值获取销售排行榜。实现代码如下:

sql = \order by BuyCount DESC\从goods表中查询商品排行,按购买次数的降序排列。

set rs=Conn.Execute(sql) 执行sql语句。

If not rs.Bof Or rs.Eof Then 在指针没有知道第一行或最后一行时,就找到了符合条件的记录,则输出商品信息:

href=\><%=rs(\

rs.movenext 循环输出。 loop End If

关注排行榜依据商品的浏览次数进行降序排序,实现方法和销售排行榜相同,只是查询语句不同。关注排行榜的查询SQL语句如下:

sql = \order by ReadCount DESC\5.3.7 浏览和购买商品

浏览商品即显示商品的信息,以方便用户购买商品。电子商城系统提供了购物车在线付款功能,用户可以轻松实现在线购买商品。

单击商品的

按键,显示商品的详细信息,包括用户对商品的投诉,

以及解决问题的方案,如图5.11

31

中国石油大学胜利学院

图5.11 商品详细信息界面

实现浏览商品功能的文件为GoodsView.asp,显示商品界面的流程如下: (1) 获取商品序号并连接数据库。

ShopID = Request.QueryString(\获取商品序号。 (2) 查询该商品是否存在,不存在,则结束。

sql = \* From Goods Where goodscheck=true and ShopID=\从goods表中查询货物为以验证,ShopID为(1)中获取的ShopID值。

Set rsGoods = conn.Execute(sql) 执行SQL语句。

If rsGoods.Eof Then 指针知道最后一条记录,仍找不到符合条件的商品,则显示没有此商品信息。

Response.Write \没有此商品信息\(3) 更新商品的浏览次数。 sql

=

\

Goods

Set

ReadCount=ReadCount+1

Where

ShopID=\更新goods表中的商品浏览量,浏览量加1,只对应于获取的商品序号。

conn.Execute(sql) (4) 显示商品类型。

32

中国石油大学胜利学院

sql = \* FROM GoodsType WHERE Type='\& rsGoods(\ set rs=Conn.Execute(sql) If not rs.EOF Then

Response.Write(rs(\

(5)显示商品图片。Goods表的ImgaeFile字段保存图片的相对路径和名称,电子商城系统把上传的商品图片保存在images文件夹下。因此获取Images字段的值,即可获得商品图片的路径和名称。

If not iname = “” Then 图片名不为空,则显示图片信息。

” width=”90” border=0>

(6)显示商品其他信息。

商品名称<%=rsGoods(\ 显示记录集中获得的商品名称,其他信息以此类推。 (7)显示图片的订购链接。

单击商品的

按钮,即可进入购买商品界面,如图5.12

图5.12 购买商品界面

33

中国石油大学胜利学院

购买界面显示用户购买商品的信息,以及需要用户输入数量,因此需要获取购买商品的信息。

(1)获取用户ID,商品编号。 User=Session(\获取用户ID。

goodsid=Request.QueryString(\获取商品编号。 (2)查询商品信息。

Sql= \ID,Name,Sn_Number,Producer,SalePrice,折扣,Content FROM Goods where goodscheck=true and ID=\

(3)显示表格标题信息。

For I = 0 To rs.Fields.Count - 1

Response.Write \读取数据表的字段名称以作为表格的标题。

Response.Write

\

METHOD='POST'

TARGET=

'Bottom'

ACTION='AddToCar.asp?shopname=\& _rs(\& \& rs(\& \& rs(\& _\TYPE='TEXT' NAME='Quantity' SIZE='5'>\输出表格内容。

在购买商品后,需要把用户名,商品序号,购买数量,商品价格,购买总价,以及订单号放入购物车。Addtocar.asp文件实现了放入购买车界面,实现流程如下:

(1)获取购买参数并计算总价。

GoodsId = Request(\获取商品序号。 Num = Cint(Request(\获取购买数量。 name= Request(\获取商品名。 SalePrice = Request(\获取售价。 subTotal = SalePrice * Num 计算金额=定价*数量。

34

中国石油大学胜利学院

userid = Session(\获取用户ID。

(2)判断用户是否购买过该商品。本系统不允许再次购买购物车内存在的商品。如果用户需要再次购买该商品,需要删除购物车内已购买的商品,然后购买该商品。判断用户是否购买过该商品的代码如下:

Sql=\ID from shop_list where ShopCheck=0 and shopID=\从shop_list表中找到订单正处理的商品

if rs.EOF=False Then 如果找到订单正处理的商品,说明交易未完成 Response.write(\该商品已经购买过,还没有成功交易!请删除原有商品后重新购买!\

(3)添加订单。用户购买商品的订单保存在shop_list表中,添加订单的代码如下:

Sql=\

into

[shop_list]([User],[ShopName],[shopID],[Cost],[Num],[TotalCost],[Time],[OrderNumber])\sId&\ber(GoodsId )&\

单击在线付款链接,显示确认订单信息界面,如图5.13

图5.13 确认订单信息界面

35

中国石油大学胜利学院

Order.asp文件实现了填写收货人信息的界面,过程如下: (1)计算所有订单价款总额和商品名称。

Sql= \* FROM shop_list WHERE user='\& Session(\& \set rs=Conn.Execute(Sql) Dim Name

If not rs.EOF Then Total = 0

Name=Name&rs(\

Total = Total + rs(\

(2) 获取用户姓名,地址,联系电话。 sql=\

UserName,Address,Telephone

from

Users

where

UserID='\从users表中查询session保存的用户的姓名,地址,联系电话。

if not rsaddress.EOF Then 找到相关用户的姓名,地址,联系电话,并显示。

address=rsaddress(\ UserName=rsaddress(\ Telephone=rsaddress(\

(3)显示用户信息。 Response.write(\

action='ORDER_Send.asp?total=\

商品名称:<%= Name %> 货款:<%= Total %>元

method='post'

36

中国石油大学胜利学院

收货地址

name=\

size=\

value=\联系电话与收货地址代码同上。

单击确定订单信息界面的提交按钮,进入网银在线付款界面,用户付款后,如果返回支付状态为20,则表示支付成功,同时更新商品库存;否则表示付款失败或出现问题。AutoReceive.asp文件只处理支付状态为20的情况。代码如下:

If v_pstatus=”20” then

If v_amount=Session(“total”) then 如果用户支付金额等于总价款,表示交易成功,则更新所有订单的已付款,已付款金额等于商品总价。

Sql=”update shop_list set YIFUKUAN=TotalCost where check=”1” and User=’”&Session(“userid”)&” ’”

Sql=”select

num

from

shop_list

check=”1”

and

User=’”&Session(“userid”)&” ’” 获取购买数量。

Sql=”update goods set 库存=库存-num where goodscheck=”1” and ShopID=’”&Session(“ShopID”)&” ’” 商品库存量减去成功购买数量为当前库存量。 5.3.8 管理界面

单击用户管理中心界面的“管理界面”链接,进入管理界面,如图5.14

图5.14 管理界面

37

中国石油大学胜利学院

在该系统中,只有系统管理员和普通管理员才可以进入管理界面时,需要判断用户的权限。在其他文件中也需要判断当前用户是否为管理员,因此把判断当前用户是否为管理员的操作做成函数可方便使用。在介绍管理界面菜单前,现介绍有关函数。

IsAdmin(User)函数判断当前用户是否为系统管理员:是,则返回True;否,则返回False. IsUser(User)函数判断当前用户是否为普通管理员:是,则返回True;否,则返回False。

在这两个函数中都要过滤特殊字符,以防止非法用户攻击。Dochar(User)函数的功能为过滤特殊字符。这些函数都保存在function.asp文件中,使用这些函数之前需要包含该文件,包含代码如下: