基于PHP的网上购物网站设计(含源码)

获取项目源文件,联系Q:1415736481,可指导毕设,课设 

摘要

随着Internet技术的发展,人们的日常生活已经离不开网络。未来社会人们的生活和工作将越来越依赖于Internet技术的发展,也将越来越数字化、网络化、电子化、虚拟化。电子商务也随着网络的发展日益和人们的生活贴近。Internet的发展历程以及目前的应用状况和发展趋势,可以充分地相信网络技术将极大的改变我们的生活和工作方式,甚至社会的价值观也会发生某种变化。本设计尝试用PHP在网络上架构一个动态的网上商品购物网站,以使每一位顾客不用出门在家里就能够通过上网来轻松购物。

本文详细介绍了基于PHP的网上购物系统的系统结构设计、实现方法和操作流程,并介绍了系统各个模块的主要功能和数据库设计及功能。该系统采用B/S结构,采用PHP技术进行动态窗体页面的设计。后台数据库选用MySQL 数据库。系统设计并实现了会员注册及登录模块,会员基本信息模块,会员购物模块,产品搜索模块,管理员商品管理模块,用户管理模块,订单管理模块,信息管理模块等一系列功能模块。最后,对网上购物系统进行了系统测试,各个模块功能运行良好。

关键字Internet,PHP,B/S,网上购物系统

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Title             PHP-based Shopping Inline System         

                                                        

Abstract

Along with the development of internet technology, daily life can not go on without the network. The life and work of the social people of future will depend on the development of digital technology more and more , digitization, networking, electronization, virtual more and more. E-commerce presses close to people's life day by day along with the development of network too.Developing course and present application state and development trend of Internet can believe network technology will change life and working way of us greatly, and even change the values of the society to some extent.This paper tries to build up a dynamic e-commerce website in the network with PHP, so that each customer needn't go out and can do some shopping easily through internet at home 。

    This paper describes system structure design, implementation method and operation process based on PHP, and introduces main functions of various modules about the system and database design. The system uses B/S structure, and conducts design of dynamic form page by PHP technology. Background database selects MySQL database. System design realizes a series of function modules such as user registration and landing module, user basic information module, shopping module, searching goods module, the management of goods ,the management of user,the management of orders ,the management of news and so on. Finally, the paper tests Shopping Inline System, and the result finds that kinds of modules operate well.

Keyword:  Internet,PHP,B/S ,e-Shopping

 

 

 

 

目  次

1 绪论. 1

1.1开发背景及意义. 1

1.2 国内外电子商务现状. 1

1.3本文研究的内容. 3

1.4 开发可行性分析. 3

1.4.1 管理上的可行性. 3

1.4.2 技术上的可行性. 3

1.4.3 经济上的可行性. 4

1.4.4法律可行性. 4

1.4.5执行可行性. 4

2 系统需求分析. 5

2.1目标和任务. 5

2.2 系统功能分析. 5

2.2.1 功能性需求概述. 5

2.2.2系统流程分析. 7

2.2.3 系统目录结构. 8

2.3数据库分析. 9

2.3.1 数据库需求分析. 9

2.3.2数据库概念结构设计. 9

2.4系统开发环境. 10

2.4.1  硬件平台. 10

2.4.2  服务器平台. 10

2.4.3  开发工具. 10

2.4.4  技术构架. 10

2.6数据字典. 11

2.6.1数据元素. 11

2.6.2数据存储。. 11

3系统概要设计. 13

3.1系统结构设计. 13

3.1.1 系统体系结构. 13

3.1.2 系统总体功能结构. 14

3.1.3 系统总体物理结构. 16

3.2数据库结构设计. 17

3.2.1数据库概念结构设计. 17

3.2.2数据库逻辑设计. 17

4系统详细设计. 22

4.1系统设计. 22

4.2 公共模块设计. 22

4.2.1 数据库公共模块. 22

4.2.2 common.php和golbal.php单元. 23

4.3产品模块设计. 23

4.3.1 产品类型设计. 23

4.3.2 产品添加设计. 23

4.3.3 产品信息查询. 25

4.4前台页面模块设计. 26

4.4.1首页设计. 26

4.4.2 产品详细信息. 27

4.4.3 购物车设计. 28

4.4.4结账处理. 29

4.4.5 会员注册和登录页面设计. 29

4.4.6 会员账户管理. 30

4.5 订单管理模块设计. 30

4.6会员管理模块设计. 32

5 系统测试. 33

5.1系统测试. 33

5.1.1 测试的目的. 33

5.1.2测试的准则. 33

5.1.3测试的方法. 33

5.2  单元测试实例. 34

5.3 综合测试. 35

5.4系统的维护主要包括四个方面. 35

总结. 36

致  谢. 38

参考文献. 39

 

 

 

1绪论

1.1开发背景及意义

电子商务是伴随着信息经济的脚步,在20世纪90年代兴起于美国、欧洲等发达国家的一个新概念。目前,国际上对电子商务尚无统一的定义。一般来说,狭义的概念是指在开放的国际互联网及其它网络的环境下,通过服务器的运用,实现消费者的网上购物、企业间商业交易的一种新型交易运营模式。即电子商务=Web(服务器)+IT(信息技术)+企业业务。

电子商务的类型:从其交易对象来看,电子商务的应用包括企业与企业之间的电子商务 (B2B)、企业与消费者之间的电子商务(B2C)、企业与政府之间的电子商务 (B2G)、政府与消费者之间的电子商务(G2C)、企业内部的电子商务。

电子商务的本质特点:电子商务的重点在于商务、电子商务的核心竞争力在于信息平台、电子商务的使命在于利用互联网技术对传统资源的整合。

电子商务实现贸易的全球化、直接化、网络化,发展电子商务是不可阻挡的趋势,而我国的电子商务尚不完善。要实现全过程的电子商务,就要加快网络基础设施建设和网络互联,实现金融电子化及海关、税务、行政监管部门电子化,市场环境网上支付,建立安全体系认证结构,健全相关法律法规等等。

1.2 国内外电子商务现状

以下是根据CNNIC(中国互联网络信息中心)公布的中国B2C电子商务发展报告来进一步分析目前的网上购物的现状。(主要引用其中的分析图表)

图1-1选择网上购物的原因

 

图1-1用户网购原因

从上面的图可以看出网上购物选择节约时间和操作方便的分别占46.7%和44.2%,这说明随着生活节奏的加快,人们越来越希望拥有简单快捷的购物方式。

图1-2用户选择商品配送的方式  

 

图1-2用户选择商品配送的方式   

    从上面的图中可以看出人们总希望直接可以拿到物品,而不需要耽搁自己的时间,如果是送货上门,也可以当面检查所购的物品,这也表现出人们对厂商信誉的担忧。                             

图1-3 用户认为目前网上交易存在的最大问题

 

                     图1-3用户认为目前网上交易存在的最大问题

从上面的图中可以看出目前两个最严重的问题是安全性和产品服务。

1.3本文研究的内容

本文详细介绍了基于PHP的网上购物系统的系统结构设计、实现方法和操作流程,并介绍了系统各个模块的主要功能和数据库设计及功能。该系统采用B/S结构,采用PHP技术进行动态窗体页面的设计。后台数据库选用MySQL 数据库。系统设计并实现了会员注册及登录模块,会员基本信息模块,会员购物模块,产品搜索模块,管理员商品管理模块,用户管理模块,订单管理模块等一系列功能模块。最后,对网上购物系统进行了系统测试,各个模块功能运行良好。

1.4 开发可行性分析

1.4.1管理上的可行性

把企业业务延伸到Internet上,建立电子商务网站,对运营商业企业来说,是企业对外展示信息,从事商务活动的窗口和界面。因此,高中层管理人员不会对此有很大的抵触情绪,主管领导也能够相应的支持。

1.4.2技术上的可行性

    根据系统目标需求分析得结果来看,不需要通过购买专业软件,仅采用

phpStudyAdmin为开发环境,Apachec为服务器,选择PHP语言就可以解决相关的问题,从而保证系统功能的实现。

1.4.3经济上的可行性

商业企业在运营过程中 ,经常会遇到产品的宣传受到限制,采购商或顾客只能通过上门咨询、电话沟通等方式进行各种信息的获取,受一定的时间与物理空间的局限并且成本较高。而本系统可以帮助企业正确认识电子商务技术在企业中的重要地位,以少量的时间和资金建立企业信息门户网站并架设一定范围的商务网络,以此来是企业与顾客间的经济活动变得更灵活、更主动。

1.4.4执行可行性

本系统采用IE浏览界面,是大家熟悉的,对于用户只需要具有一般的计算机知识的人员都可以轻松上手。而且整个系统采用最友好的交互界面,简洁明了,不需要对数据库非常了解。因此,该系统的操作是可行的。

2系统需求分析

2.1目标和任务

网上购物基于B/S模式, 通过对一些典型电子商务网站的考察、分析,并结合企业要求, 开发一套拥有前后台的信息化管理系统,需满足以下要求:

  1. 统一友好的操作界面,保证系统的易用性;
  2. 商品分类详尽,可按不同类别查看商品信息;
  3. 为客户提供通过一个购物车模型就能够购买多个商品项的机制;
  4. 提供简单的安全模型,让客户必须先进行登录,才允许购买购物车的内                容;
  5. 设计网站后台操作平台,管理网站的各项基本数据。
  6. 对不同的管理者设置不同的权限;

   系统的主要任务有:

   a,处理对象:主要涉及的数据有:商品、顾客(会员)、顾客组、管理员(用户)、管理员组、订单、邮寄方式等。

   b,处理功能要求:本系统完成商品、顾客(会员)、管理员(用户)、订单等之间的功能联系,形成一个有效的循环系统。具体包括以下几点:1,顾客注册为会员;2,管理员发布商品;3,订单管理;4,顾客组管理;5,管理员权限的管理等。

2.2系统功能分析

2.2.1功能性需求概述

  在线购物系统是商家和购买者直接接触的桥梁,商家通过管理在线购物系统,向购买者发布、展示产品,而购买者也通过网站和商家交流、订购产品,从而达到现实交易的目的。

    在这个交易过程前,商家需要将产品信息录入,并且在前台显示出来,这其实就是一个信息发布系统,顾客在看到产品后,可能会有许多的问题,也就是需要针对产品留言,然后企业做出相应的回答,这个留言也属于信息发布的一部分。

  在交易过程中,顾客一般是不允许匿名购买的,顾客需要留下现实的个人信息才能收到现实中的产品,相信作为顾客,也很愿意方便线下联系。接着是在线模拟交易过程,顾客完成所有的选取后,就可以付账了,这里需要和支付网关连接。付账之后就是企业方通过后台的程序发现有新交易并进行线下处理。

  在交易完成后,企业方需要对近期销售情况进行统计,如会员资料的查询、修订等。

  通过对电子交易流程的划分,在线购物系统的系统功能主要由3部分组成:信息发布系统、会员管理系统和电子交易系统。电子商务的本质更趋向于电子交易,也就是前台和客户打交道的页面。

  通过细化系统功能,很明显电子交易部分是重点,电子交易页面需要完成哪些功能呢?

  逛在线购物系统和逛超市相似,进入超市时,顾客习惯拿购物筐或者购物车,再开始逛。逛超市时会不断查看想买的东西,直到确定买的那个产品的位置,在确定的过程中,会不断将其他物品放到购物车中,然后再将不适合的东西拿出,一直到结账。在选取物品时会发现,超市总是把相关的产品放在一个位置,以方便消费者,同时消费者也会拿出两个相同类型的东西进行比较。

  通过对超市购物的分析,了解了应该如何去模拟一个现实的交易过程。首先,需要一个产品的展示,方便顾客查询,还要有产品比较的数据,更有助于消费者比较,选择自己满意的产品;然后,要有一个购物车,方便顾客查看自己选中的产品,也可以把需要购买的产品放入购物车或者从购物车中拿出不需要的产品;最后是结账,和超市结账有很大区别,电子商务不允许匿名买卖。付账和收到产品之间有一个相对较长的时间,而且企业和顾客也不是面对面的,企业需要收集有效的信息,才能把产品送到顾客手中,所以结账时要确定用户是否登录,以收集用户的资料。

  通过以上分析可知,本系统分成两个模块:前台浏览模块和后台管理模块。

  前台浏览模块可再分为两个模块:产品浏览模块和购物模块,涉及产品首页浏览、推荐产品浏览、产品列表,以及查看产品详细内容、查看评论等功能。购物模块主要充当购物车作用,包括选取产品、对比产品、会员注册、登录及网上支付等功能。

  后台管理模块可分为3个模块:会员管理模块、产品管理模块和订单管理模块。后台管理模块主要涉及产品分类目录管理,以及产品内容的管理。会员管理模块主要是查看和修改,包括管理会员的基本资料以及购买的产品等详细信息。订单管理模块主要涉及对顾客订购的产品管理,按照订单的状态大致分为待处理的订单和已经处理的订单。

  本系统的结构图如图2-1所示:

 

电子商务网站

前台浏览

后台管理

购物模块

会员管理模块

产品管理模块

选取产品

会员注册

查看会员资 料

会员登录

在线支付

新订单

产品修改

产品发布

会员购买产品

待发订单

已发订单

产品浏览模块

订单管理模块

完成交易订单

用户管理模块

 

 

图2-1 系统结构图

2.2.2系统流程分析

    在后台管理模块中,管理员需要先添加产品栏目分类,再进入产品列表页面,选择指定的产品栏目进行产品添加操作。在会员提交订单之后,管理员可以通过订单管理模块查看订单,并根据实际情况更改订单状态,管理员也可以通过会员管理模块查看会员信息。前台界面则是会员选取需要购买的商品,并提交订单。后台管理的流程图如图2-2所示。

 

产品分类维护

管理首页

导航条

产品添加

产品列表

不通过

通过

会员列表

登录验证

会员编辑

订单列表

产品修改

产品删除

会员查看

 

 

图2-2 后台管理流程图

2.2.3系统目录结构

系统目录结构的规划非常重要,这样可以更加方便管理程序,体现出清晰的思路。通过对系统结构的分析,可以按照功能模块来划分系统目录结构。如图2-3所示:

 

图2-3 目录结构

 

由图可以看出,系统文件保存在dzsw目录中,其下有13个子目录:admin目录主要保存后台管理的程序:data主要保存一些log信息,方便以后的查看:htmlarea目录保存文本编辑代码:includes目录保存公共模块中的代码,如MySQL连接之类的封装类等;install目录保存安装程序,方便把系统移植到其他的机器上,也方便初始化网站;js目录包括程序中需要使用的JavaScript程序;languages目录主要是为了界面的多国语言需要设计的,根据不同语言的需要调用不同的文件;modules目录保存连接支付网关的程序;myaccount目录保存关于本站的一些信息;styles目录保存网站的样式文件;templates目录保存模板文件;upload目录保存所有的上传文件,这个文件夹需要特别关照,在发布网站后,这个目录中的任何东西都是不能执行的,否则将产生隐患。

2.3数据库分析

2.3.1数据库需求分析

数据库需求分析是所有数据库系统设计的最重要一步,在这个步骤里需要对系统的所有数据存储进行分析和整理,以便得出具有稳定性和扩展性的存储结构,这也是数据建模的过程。

通过分析,不难得出主要有4个重要的实体对象,即产品分类存储表、产品内容存储表、订单存储表及会员存储表。 这4个表是在线购物系统的核心,所有的产品必须归属于某个类别,而这些产品分类的类别是不固定的,所以就需要一个分类存储表来存储产品的分类栏目。

2.3.2数据库概念结构设计

根据以上对数据库的分析,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。

下面是在线购物系统的E-R模型图

 

 

 

 

 

 

 

顾客表

顾客编码 I

顾客名称Va100

Identifier_1

 

 
   

 

 

 

 

 

 

 

 

 

顾客组设置表

订单表

评论

产品列表

邮递方式

组编码 I

组名称  va100

打折优惠  I

Identifier_1

订单编码 I

顾客 id  I

产品 id  I

支付方式 I

Identifier_1 

Identifier_1

评论编码 I

评论内容  va100

产品编码 I .

产品名称 va100

Identifier_1

邮递方式编码I

邮递名称 va100

邮递费用va100

Identifier_1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

图2-4 E-R图

2.4系统开发环境

2.4.1硬件平台

系统所需的硬件平台:PⅡ以上的CPU,512M以上内存,硬盘80G以上,windows xp操作系统。

2.4.2服务器平台

WWW服务器:Apache。

数据库软件:MYSQL。

2.4.3开发工具

开发工具使用:phpStudyAdmin

2.4.4技术构架

系统采用B/S技术架构

2.6数据字典

2.6.1数据元素

名字:会员名称

描述:顾客用来登陆网站的唯一标识

数据类型:字符

长度:96

 

名字:产品ID

描述:用来表示产品的唯一标识

数据类型:整型

长度:10

 

名字:订单ID

描述:用来表示顾客订单的唯一标识

数据类型:整型

长度:8

 

名字:管理员ID

描述:用来表示管理员的唯一标识

数据类型:整型

长度:4

 

名字:邮寄方式ID

描述:用来表示邮递的唯一标识

数据类型:整型

长度:8

 

名字:顾客组ID

描述:用来表示打折顾客组的唯一标识

数据类型:整型

长度:6

2.6.2数据存储

名字:顾客信息

描述:注册为会员的个人信息

组成:自动编号ID,用户名(Email),密码,组名,消费金额,注册日期。

 

名字:顾客组信息

描述:存储顾客的打折优惠

组成:自动编号,名称,折扣。

 

名字:产品信息

描述:发布的产品的信息描述

组成:自动编号ID,产品名称,产品单位,产品价格,产品描述。

 

名字:订单信息

描述:会员发出订单的信息

组成:自动编号ID,用户联系方式,订单内容,邮寄方式。

 

名字:管理员信息

描述:系统管理的信息

组成:管理员ID,管理员名称,管理员类别,管理员密码。

 

名字:邮寄方式信息

描述:送货方式信息

组成:方式编号ID,名称,费用。

 

 

3系统概要设计

3.1系统结构设计

系统结构设计是结构化系统分析与结构化程序设计之间的接口。结构化系统设计运用了一套标准的设计准则工具,采用模块化方法进行新系统层次关系和模块分解设计,结构化系统设计的核心是模块分解设计,其基本思想是以系统的逻辑功能设计和数据流关系为基础,根据数据流程图和数据字典,借助于一套标准的设计准则和图表工具,通过“自上而下”的逐层分解,把系统划分为多个大小适当、功能明确、具有一定独立性、并易于实现的模块,从而把复杂系统设计转化为多个简单模块的设计。

3.1.1系统体系结构

目前,Web项目较为流行的开发模式是三层逻辑体系结构,本系统的开发按照Windows DNA (Windows Distributed Internet Application,分布式互联网应用结构),采用基于XML的三层B/S体系结构。Windows DNA提供了一种开发三层结构Web应用程序的通用方法是一个电子商务开发的良好环境。

MVC的设计思想简介,MVC的设计思想将平台划分为表现层、业务层、数据访问层、数据库层。

表现层(Presentation Tier)对应于MVC的V(View),负责系统的表示逻辑,主要是每个.php 页面。

业务层(Business Tier)体现系统的业务逻辑。业务层起到了Business Delegate的作用,屏蔽了表示层,有利于重用业务模型。

数据访问/集成层(Data Access/Integration Tier)负责进行数据访问及系统间交互操作。数据访问组件负责与关系型数据库打交道,进行具体的增删改查(CRUD)操作。系统集成代理/适配器组件负责与软件产品和外部系统打交道,交换数据和消息。数据访问/集成层组件意识不到业务层的具体逻辑,通过约定的接口让业务层来调用。

MVC三层逻辑体系结构如图3-1所示。

 

 

 

PHP

Web Form

业务逻辑层

(BLL)

数据访问层

(DAL)

MYSQL

 

 
   

 

 

 

 

图3-1 三层逻辑体系结构

3.1.2系统总体功能结构

根据系统分析的结果数据流程图所描述的系统的逻辑模型,把数据流程图上各个处理模块进一步分解,确定系统的层次结构关系,把逻辑模型变为物理模型。

在管理信息系统的设计过程中,系统划分的一般原则如下:

1)、子系统要具有独立性。即应把相对独立的事务处理过程作为一个子系统。这样的子系统具有较高的内聚性,与其它的藕合较弱,便于软件开发、使用及日后系统维护。

2)、子系统的划分结果应使数据冗余度较小。应避免部分数据在多个子系统中出现,尤其是修改,以保证系统的安全性、可靠性和数据的一致性。

3)、子系统的划分应能满足目前和日后管理上的需要,功能应齐全,操作要方便且为今后发展留有接口。

4)、子系统的划分应以该单位的管理职能为依据。应尽量避免过分依赖于组织机构,以防止机构变更后为系统带来不必要的麻烦。

从公司的组织结构上出发,把整个管理信息系统划分成多个子系统。每个子系统的功能相对独立,但是子系统之间有必要的数据联系。

对电子购物商城系统的数据流图采用变换中心法和事务中心法进行分析,对其逐步进行功能分解,直到分解成为含义明确、功能单一的单元功能模块,从而得到系统的功能模块结构图,即系统的功能图。如图3-2,反映了电子购物商城的系统功能模块的划分。

 

图3-2 电子购物系统功能模块结构图

1、前台模块详细功能描述

其中,用户信息管理以及订单和购物车是禁止匿名用户访问的内容。

(1)商品信息模块:

商品浏览(首页显示部分普通商品列表)、特价商品浏览(首页显示特价商品列表)、商品分类浏览、商品详细信息。

(2)购物车模块:

添加商品到购物车、购物车信息修改、结账。

(3)用户信息管理模块:

注册新用户、登录、用户修改密码、用户个人资料管理。

(4)订单模块:

查询个人订单列表、查询某笔订单的详细信息、取消订单。

2、后台模块详细功能描述

(1)管理员信息管理:

管理员登录、添加新管理员、删除管理员、修改密码。

(2)商品信息管理:

添加新商品、修改商品信息、删除商品。

   (3)订单管理:

管理订单是否确认、是否付款、是否发货、是否归档,并且对相应信息进行查询。

3.1.3系统总体物理结构

电子购物各个部门在不同的地点办公,网络拓扑结构以交换机为基础,各部门通过主交换机连接到公司主服务器,电子购物有不同办公地点。根据这个特点,系统利用微机局域网作为系统的基本物理结构。为了提高系统的可靠性和可扩展性,网络采用以网络集线器为基础,以双绞线为传输介质的星型结构。在每个业务发生点以及每个管理员分别配制微型计算机作为系统结点工作站,系统功能的实现,子系统间的数据共享与交互通过网络服务器完成。电子购物的系统网络拓扑图如图3.3所示。

 

 

 

 

 

 

 

 

 

 

 

图3.3  电子购物商城系统网络拓扑图

系统具体物理配置如下:

利用公司已经架设好的企业局域网,主服务器采用:服务器、交换机、网络集线器,传输介质采用10M屏蔽双绞线为介质的星型网络拓扑结构,服务器作为系统功能实现和数据共享中心,应具有较好的性能和可靠性。在此基础上再配上一台提供web服务的服务器和一台MYSQL数据库服务器即可实现对本系统的全部物理支持。

系统具体硬件配置如下:

1)、WWW服务器:INTER P4 2.4 512M DDR ROM 80GB 硬盘。

2)、数据库服务器:INTER P4 2.4 512M DDR ROM 80GB 硬盘。

3)、客户机:目前流行的PC兼容机。

4)、网络连接设备:路由器、交换机、打印机、扫描仪等。

系统具体软件配置如下:

1)、操作系统:Microsoft公司Windown2000Server,网络协议采用TCP/IP协议,

  客户机 WINDOWS 2000/XP。

2)、WWW服务器:Apache.

3)、数据库软件:MYSQL。

3.2数据库结构设计

3.2.1数据库概念结构设计

根据需求分析中的结果,数据库的关系模型设计如下:

会员(顾客ID,顾客名称,顾客组,消费金额,注册日期,联系方式)

产品(产品编号,产品名称,售价,数量,图片,备注)

管理员(管理员编号,密码,管理员组)

订单(编号,顾客名称,内容,备注)

顾客组(ID,类别,名称,折扣)

管理员组(ID,类别,名称,权限)

邮寄方式(ID ,名称,费用计算)

3.2.2数据库逻辑设计

    经过需求分析,概念结构设计,了解了系统的存储结构需求后,可以得出8个表结构,即顾客组设置表、顾客表、产品评论表、产品列表、订单表和邮递方式表、管理员表、管理员组表。

    顾客组设置表是为了存储顾客的打折优惠,这里记录的事组的打折信息。表结构如表3-1所示

 

 

表3-1顾客组设置表(usergroups)结构

序 号

字 段

描 述

类型和长度

主 键

可 空

默认值

1

Groupid

自动编号

Smallint(6)

2

Classes

类型

Varchar(30)

3

Grouptitle

组名称

Varchar(30)

4

groupdiscount

折扣

float

0

顾客信息表主要是记录顾客的详细信息,其中groupid是指定顾客组的编号,用户的名称采用Email,记录用户的登录时间可以方便的查看最后的登录时间,这样有助于对客户的跟踪服务。表结构如表3-2所示

表3-2 顾客信息表(customers)结构

序 号

字 段

描 述

类型和长度

主 键

可 空

默认值

1

Customers_id

自动编号

Smallint(6)

2

Email

用户名称

Varchar(30)

3

Grouid

组名称

Int(10)

4

Regdate

注册时间

Int(10)

0

5

Lastvisit

最后登录时间

Int(10)

0

6

Money

消费总金额

Decimal(15.2)

0

7

QQ

QQ联系方式

Varchar(30)

8

msn

msn联系方式

Varchar(30)

产品评论表主要是针对产品的评论信息,其中products_id就是产品的编号,date_add就是记录产品的添加时间,viewed是表示这条评论被浏览的次数。表结构如表3-3所示

 

 

 

 

 

 

 

表3-3 产品分类表(classes)结构

序 号

字 段

描 述

类型和长度

主 键

可 空

默认值

1

rid

自动编号

Mediumint(8)

2

Email

用户名称

Varchar(30)

3

Products_id

产品 id

Int(10)

4

review

评论内容

text

0

5

Date_added

添加时间

Int(10)

0

6

viewed

被浏览次数

Mediumint(8)

0

产品的信息列表记录的是产品的基础信息,包括产品的价格、重量、名称、所属分类、详细描述等字段。表结构如表3-4所示

表3-4产品表(products)结构

序 号

字 段

描 述

类型和长度

主 键

可 空

默认值

1

Products_id

自动编号

Mediumint(8)

2

Classes_id

分类编号

Mediumint(8)

3

name

产品名称

Varchar(64)

4

model

产品单位

Varchar(64)

5

image

产品展示图片链接

Varchar(64)

6

price

产品价格

Decimal(15.2)

0

7

weight

产品重量

Decimal(5.2)

0

8

description

产品描述

Text

9

manufacturer

生产厂商

Varchar(64)

订单表主要记录的就是用户订单的详细信息,包括购买人、购买人的联系方式、产品的价格、邮寄方式等信息。由于每次用户可能会定购多种产品,所以订单将分成两个表来记录,一张用来记录联系信息,一张表用来记录联系信息和产品之间的关联。表结构如表3-5和表3-6所示

 

 

 

表3-5订单表联系信息(orders)结构

序 号

字 段

描 述

类型和长度

主 键

可 空

默认值

1

Order_id

自动编号

Mediumint(8)

2

D_name

用户联系姓名

Varchar(100)

3

cid

会员id

Int(10)

4

D_street_address

会员地址

Varchar(100)

5

D_tel_mobile

会员联系方式

Varchar(100)

6

Orders_status

订单状态

Varchar(100)

7

Shipping_method

邮递方式

Int(10)

表3-6订单产品信息关联表(orders_products)结构

序 号

字 段

描 述

类型和长度

主 键

可 空

默认值

1

opid

自动编号

Mediumint(8)

2

Orderd_id

于orders表关联id

Int(10)

3

Products_id

产品关联id

Int(10)

4

price

产品价格

Decimal(15.2)

0

5

Final_price

最终价格

Decimal(15.2)

0

邮寄方式表主要是为计算邮寄费用产生的,不同的邮寄方式会带来不同的邮寄费用。表结构如表3-7所示

 

表3-7 邮寄方式表(shipping)结构

序 号

字 段

描 述

类型和长度

主 键

可 空

默认值

1

id

自动编号

Mediumint(8)

2

Shippingname

费用名称

varchar(200)

3

Fee

费用计算公式

Varchar(200)

管理组设置表是为了存储管理员的不同管理权限。表结构如表3-8所示

表3-8管理组设置表(Admingroups)结构

序 号

字 段

描 述

类型和长度

主 键

可 空

默认值

1

AdminGroupid

自动编号

Smallint(6)

2

Classes

类型

Varchar(30)

3

Grouptitle

组名称

Varchar(30)

4

Allow_class_see

查看会员组

float

0

5

Allow_class_add

添加会员组

Int(10)

0

6

Allow_class_delete

删除会员组

Int(10)

0

7

Allow_product_see

查看商品

Int(10)

0

8

Allow_product_edit

编辑商品

Int(10)

0

9

Allow_product_add

上传商品

Int(10)

0

10

Allow_product_delete

删除商品

Int(10)

0

管理员信息表主要是记录管理员的信息。表结构如表3-9所示

表3-9 管理员信息表(customers)结构

序 号

字 段

描 述

类型和长度

主 键

可 空

默认值

1

Admin_id

自动编号

Smallint(6)

2

name

名称

Varchar(30)

3

password

密码

Varchar(30)

4

admingroupsid

管理组

Varchar(30)

5

createdate

创建时间

Int(10)

6

lastvisit

最后登录时间

Int(10)

 

 

4系统详细设计

4.1系统设计

在系统总体设计阶段已经提到过本系统采用MVC体系架构,但MVC架构具体是怎么实现的呢?下面我将介绍系统的具体实现功能。

4.2 公共模块设计

    结构合理的系统都是经过改良的,将共同的东西取出来放置到相同的地方供引用和调用时设计系统必须要做的工作。

4.2.1数据库公共模块

   PHP中将创建数据库连接connection 独立出来做成公用的文件是最常用的做法,我将其命名为config.php,放置在include目录下。这个目录用来存储供整个系统公用的目录。当页面需要使用数据库连接时,只需要通过PHP的引用公用文件即可,这样不但避免了每个页面都编写数据连接,而且也能避免当数据连接发生变化时去修改每一个页面的麻烦。Db_mysql.php中使用了两种方式来获取与数据库连接:一种是获取已有的连接mysql_pconnect($dbuser,$dbpw),这样无须重复的建立连接,节约了资源:另外一种方式是mysql_connect($dbhost,$dbuser,$dbpw),这种方式是获取一个新的连接。在获取连接资源时,通常会传递3个参数,这里分别是$dbhost,$dbuser,$dbpw,代表的是带有端口号的主机地址,登录用户名和密码。

Config.php中的定义代码如下所示:

Define(‘DB_SERVER’,’localhost’);//数据库服务器

Define(‘DB_SERVER_USERNAME’,’root’);//数据库用户名

Define(‘DB_SERVER_PASSWORD’,’’);//数据库密码

Define(‘DB_DATABASE’,’shoopdb’);//数据库名

4.2.2 common.php和golbal.php单元

Common.php是公共函数的文件,将公共函数独立出来可以大大节约编程时间及编程量,也为后期维护带来很大方便。

Global文件是对全局变量的处理。

4.3产品模块设计

4.3.1产品类型设计

    产品一般有大类和小类之分,多级栏目使用树结构来展示。可以单击编辑和删除来修改。分类列表如图4-1所示。

 

图4-1分类列表

分类编辑修改分类名称和是否在页面显示。如图4-2所示

 

4-2分类修改列表

4.3.2产品添加设计

    把产品作为一个类封装起来可方便对产品进行各种处理。Includes中的cla.products_p.php和cla.products.php文件就是对产品的封装。

    首先,添加产品的基本信息,如图4-3所示。

 

4-3 产品的基本信息添加

添加完产品的基本信息后单击提交按钮,系统会向服务器端提交产品的基本信息,之后就会自动转向详细信息添加页面;如果添加产品基本信息不成功,将转向错误显示页面。

完成提交后,程序会自动转向产品详细信息添加页面。该页面分为5个子页面。如图4-4所示

 

图4-4 详细信息添加页面

如添加错误可以修改如图4-5所示

 

 

 

图4-5商品分类修改页面

商品图片添加页面如图4-6所示

 

图4-6 商品图片添加页面

4.3.3产品信息查询

查询页面如图4-7所示,可以通过商品名称、状态、基本信息、详细说明来查找产品信息

 

图4-7 查询页面

 

图4-8 查询结果列表

4.4前台页面模块设计

    这里主要涉及产品的前台展示和购物车的编码制作等。

4.4.1首页设计

    作为在线购物系统,首要的任务是展示产品。除了展示产品,还可以加入其他元素来丰富页面。为了在有限的首页空间展示最吸引客户的信息,可把特价产品和新到产品的前5名展示在首页,如图4-9所示。

 

图4-9首页商品展示页面

在设置前台时,会把这些信息缓存起来,以方便再次调用此页面时不需要再次读取数据库,这样可以提高读取效率,也可以减轻服务器端的压力。Fun.common.php中的cacheexists($filename,$pam=‘’)函数就是用来验证是否在硬盘中有缓存,如果没有,将生成缓存文件。Cacheeesxists($filename,$pam=‘’)的实现代码如下所示:

Function cacheexists($filename,$lpam=’’){

   If($pam==’’){

      $pam=$filename;

}

//

If(!file_exists(DIR_SHOOPD.”data/cache/cache_”.$filename.”.php”)){

Updataecache($pam);

}

Return DIR_SHOOPD.”data/cache/cache_”.$filename.”.php”;

}

4.4.2产品详细信息

用户在首页上看到感兴趣的产品后,对商品做进一步的了解。图4-10为商品的详细信息介绍:

 

图4-10 商品详细信息介绍

单击“您对此商品有话要说,您可以点击这里发表评论。”后就进入评论页面。可以看到URLhttp://127.0.0.1/dzsw/writerviems.php?products_id=23,这里是把商品的编号传递到评论页面,找到评论商品的ID。客户端评论页面如图4-11:

 

图4-11 商品评论输入页面

评论提交后,首先判断消费者是否已经登录,如果用户已经登录,需要把评论信息和会员昵称关联起来。需对Email进行验证,使用的是正则表达式。

在添加评论之后返回商品展示页面,就可以看到针对商品的评论了,如图4-12所示:

 

图4-12 评论页面

4.4.3购物车设计

   购物车的实现流程:购物清单(购物车)->收货/送货人地址->选择送货方式->选择付款方式->确认并提交订单。

购物车如图4-13所示,购物车模块有两个链接,进入购物车和点击结账。“进入购物车”主要是显示已经放入购物车的详细信息,而“点击结账”的页面就是结账页面。

 

图4-13购物车详细信息页面

4.4.4结账处理

单击购物车中的“结账”链接就可以进入结账页面。

4.4.5会员注册和登录页面设计

注册会员需要填入会员的基本信息,这里的注册名是消费者的Email地址,用这个作为用户登录名的好处是可以强制性的让用户输入一个Email,而且Email地址是不会重复的。获取Email地址后,就可以通过这个Email地址给消费者发送订单处理等信息。在注册会员之后还需要让用户填入详细信息。如图4-14

 

图4-14会员详细信息添加页面

将会员的详细信息和基本信息分开的好处是,用户在填入某信息出错时,只需要重复填入少量资料,避免了用户的麻烦。

输入收货人地址后就是选择发送方式。如图4-15所示:

 

图4-15送货方式选择页面

在中国,一般提供了3种送货方式,即中国邮政的EMS、国内快递和普通快递。这3种方式的送货费用不同,计算方法为:产品的总重量*每公斤运送价格+其他固定费用,图4-16中的运费就是这么计算出来的。

 

图4-16支付方式选择页面

4.4.6会员账户管理

顾客在购买产品后,需要对自己的产品进行跟踪,需要知道自己购买产品的状态,会员账户管理导航条如图4-17所示。

 

图4-17 会员账户管理导航条

4.5订单管理模块设计

订单分类,按照订单的状态分为:新订单、已审核订单、等待付款订单、部分付款订单、全部付款订单、已确认付款订单、取消订单等,如图4-18所示:

 

图4-18 订单设置导航条

 

 

4.6会员管理模块设计

会员管理模块是电子商务的最后一个模块。会员添加在前台已经完成,后台只需要一个浏览模块,如图4-19所示

 

图4-19 会员清单列表页面

还有一个会员组的选项,对于在线购物来说,打折时很有必要的,而打折方式是按照不同的会员组来设定的。如图4-20所示:

 

图4-20 会员设置页面

 

 

 

 

 

 

 

 

 

 

 

5 系统测试

5.1系统测试

5.1.1测试的目的

软件测试的目标和定义:

 (1)测试是为了发现程序中的错误而执行程序的过程。

 (2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。

 (3)成功的测试是发现了至今为止尚未发现的错误的测试。

  在对本网络书店销售管理系统测试时,也正是基于上述观点来进行的,测试的目的不是证明系统是完美的,而是发现问题,更好的解决问题,使系统不断完善,满足客户的需求。

5.1.2测试的准则

为了能设计出行之有效的测试方案,必须深入理解并正确运用指导软件测试的基本准则。下面列举主要的测试准则:

(1) 所有的测试都应该追溯到用户需求。

(2) 应该在开始测试之前就制定出测试计划。

(3) 把Pareto原理应用到软件测试中。Pareto原理说明,测试发现的错误中80%很可能是由程序中的20%模块造成的。

(4) 应该从“小模块”测试开始,并逐步进行“大模块”测试。

(5) 穷举测试是不可能的。

(6) 为了达到最佳的测试效果,应该由独立的第三方从事测试工作。

5.1.3测试的方法

测试任何产品都有两种方法:如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能正常使用;如果知道了产品的内部工作过程,可以通过测试来检测产品内部动作是否按照说明书的规定正常工作。前一种称为黒盒测试又称功能测试,后一种方法称为白盒测试又称结构测试。

在测试本系统时,采用的是黑盒测试来设计测试用例,而且在测试过程中,由于条件原因,不能完全按照测试规则由第三方来测试,测试过程和方案设计由作者完成。

5.2单元测试实例

测试一:在管理员登陆时,用户名或密码有一项为空或者填写错误,系统是否出现预先设定的操作提示。

预期效果:输入错误及时报错。

具体操作:用户名、密码、任意一项为空或者填写有误。

结果:都出现相应的错误原因的信息提示。

结论:要求管理员必须填写正确的用户名和密码,才能进入管理页面,测试成功。

测试二:发布产品或修改本站的公告﹑返回前台,看其是否更新成功。

预期效果:发布和修改过后能及时更新内容。

具体操作:通过管理页面发布产品功能发布产品,修改公告功能修改公告的内容,看其是否发布修改成功。

结果:显示发布的新产品,公告内容更新为修改后的信息。

结论:发布产品,修改公告功能正常,测试成功。

测试三:顾客浏览商品放入购物车后结账,如不登录能否提交订单。

预期效果:该用户不能提交订单。

具体操作:前台顾客不登录提交订单。

结果:该订单无法提交,转入登录页面。

结论:购物车功能完善,测试成功。

测试四:顾客注册为新会员,注册号重复,密码没有6位。

预期效果:注册失败,提示错误。

具体操作:注册号重复,密码设为5位。

结果:提示注册号已存在,密码至少6位。

结论:顾客注册功能正常,测试成功。

测试五:发货失败,取消订单。

预期效果:顾客账户页面订单取消,已付款退回。

具体操作:在后台订单管理页面取消一已付款订单。

结果:前台会员账户页面显示订单取消,余额增加。

结论:订单功能正常,测试成功。

5.3综合测试

在以上测试的基础上,对系统功能进行了整体测试,依次检验系统功能是否符合系统开发的目标。经过使用大量的数据多次进行系统测试,发现系统存在的问题并及时改进,最终实现了网上购物系统的开发目标。

5.4系统的维护主要包括四个方面

(1) 程序的维护:修改部分或全部程序,这种维护往往是在条件发生变化或原系统的效率低的情况下进行的。

(2) 数据文件的维护:按照用户的要求对数据文件进行不定期的修改。

(3) 代码的维护:随着系统的发展和变化,可能会出现旧代码不能适应新要求的问题,因此,有必要变更代码,予以维护。

(4) 硬件的维护:对系统所使用的设备进行维护。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

总结

本文讲述了在线购物系统的系统分析和设计,介绍了后台的商品发布、订单管理、会员管理以及前台的购物管理。

在线购物系统只是所有在线购物系统的雏形,后台的商品发布、订单管理、会员管理和前台的购物管理是所有在线购物共有的特征。根据本实例的最初设计思想,对方案如下改进意见:

一.完善系统功能

除了给用户浏览商品外,提供给用户一个接口,用户对产品提出自己的建议,比如设计方面,包装方面,企业可以在网上搞一些活动,比如意见征集,这样提高用户参与的积极性,同时企业可以从用户的意见以及反馈信息中,找到使企业可持续发展的途径。只要是服务性的行业最根本的还是要坚持以客户为中心的原则。

二.完善业务流程

根据实际情况,使业务流程规范化。做到充分利用企业的资源,市场的资源,人力资源。使工作业务流程能够更合理,更有序的进行。

三.完善人员培训机制

对员工进行定期的培训,让员工了解市场,了解企业发展状况,了解客户需求。对员工进行一定的理论方面的培训。加强信息观念,这样提高了员工的素质,更加有利于员工参与工作,并胜任工作。在全球都提倡信息化的今天,面对我国的实际情况,所有人都应当提高自己的信息素养,只有这样我们才能很好的和世界贸易接轨,我国的电子商务才能有较快的发展,我国的经济发展才会有保证。

通过开发这个项目,巩固了以前所学的理论知识,提高了自己理论联系实际的能力,为今后进一步学习新技术打下一个很好的基础,为走上社会实际工作岗位做好了充足的准备,为今后的职业发展打下良好的基础。面对以后各项挑战,我有信心做得更好!

当然,由于时间和技术上的原因,该系统还是存在一些问题和不足的地方,比如在数据容量方面,由于没有经过大量数据的测试,数据库能承受多大负荷还不能确定,在美工方面,由于缺少美工经验,所以很多页面看起来可能会不那么漂亮美观,在一些细小的处理上可能还缺少进一步的考虑。

当然,作为毕业设计,我认为这是一次很好的经历,从中也学到了许多很宝贵的经验,能够在老师和同学的帮助下顺利完成这个系统,对我自己也是一种鼓舞,也给了我更大的信心、更深的理解了团队合作的重要性。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

致  谢

本系统能够顺利完成,非常感谢白晧老师的指导和同学们对我的帮助,谢谢各位对我的精心指导和提议。对于我个人而言,这次毕业设计既是对我大学期间所学知识的一个综合检验,也是对我一次全面的考核,更是一次锻炼,加深对自己所学知识的认识与理解。

在毕业设计过程中,得到了河南工业大学信息科学与工程学院的大力支持,为我提供了丰富的书籍与网络资源,良好的学习环境。本文是在白晧老师的精心指导下完成的,从论文的选题、文章结构的构筑到最后的定稿,都得到了导师的细心指导和帮助,我所取得的每一个进步都凝结着导师的汗水与心血,在此表示衷心的感谢!在此,我还要感谢所有曾经教导过我的老师和关心过我的同学,他们在我成长过程中给予了我很大的帮助和关怀。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

参考文献

[1]周影. 网络编程语言PHP实例教程[M]电子工业出版社,2003

[2]冯燕奎  PHP4.0与MySQL动态网站编程   清华大学出版社 

[3]位元文化  PHP & MySQL 动态网页入门实务(HTML、SQL与面向对象)中国青年出版社

[4]明日科技  PHP函数参考大全   人民邮电出版社  2007

[5]三杨科技  PHP开发入行真功夫   电子工业出版社, 2009

[6]李婷.数据库开发与实例. 北京:清华大学出版社,2006

[7]陈海山. 深入PHP网络编程[M].  清华大学出版社,2002

[8]邝孔武、王晓敏 :《信息系统分析和设计》,清华大学出版社,2001

[9]徐建波,周新莲. Web设计原理于编程技术[M].中南大学出版社, 2005

[10]Ron Jeffries.Extreme Programming Installed.Addison-Wesley, 2001

[11]张端金 高曙,杨苹等编著. 计算机专业英语[M].武汉理工大学出版社, 2003

[12]张海藩  软件工程导轮   清华大学出版社,2002

[13]萨师煊 王 珊. 数据库系统概论[M]. 高等教育出版社, 2004

[14]张金区 王云鹏 PHP对数据库的访问技术及执行效率的比较  计算机工程应用 ,2005

[15]杨  巍.  LAMP黄金组合建立企业安全Web  开放系统世界, 2005

[16]王珊,陈红  数据库系统原理教程[M].北京:清华大学出版社,2004

[17]贺松平.基于MVC模式的B/S架构的研究及应用  华中科技大学出版社,2005

[18]胡百敬,姚巧玫.SQL Server 2005 数据库开发详解  电子工业出版,2006

[19]Hector Garcial-Molina Jeffrey D.Ullman Jennifer Widom.Database system implementation.机械工业出版社,2001

[20]Joseph McKendrick,“Launching EC Projects”.E-Commerce World Magazine. August 1 ,2001

[21]Philip Burgert.“Branding Power In E-Commerce”. E-Commerce World Magazine,January 1,2001

[22]Scott Oaks & Henry Wong. Java线程[M]. 北京:中国电力出版社,2003.5

[23]Rassel Winder  Graham Roberts. Java软件开发[M] . 北京:人民邮电出版社,2008.7

[24]严蔚敏.数据结构. 北京:清华大学出版社,1997

[25]张增强 编程实例与技巧精粹. 北京:北京希望电子出版社,1999

[26]何鹏飞 程序设计教程. 北京:清华大学出版社,2000

你可能感兴趣的:(基于PHP的网上购物网站设计(含源码))