基于PHP的网上书店系统/

摘要

伴随着电子商务的飞速发展,购物平台越来越多的情况下,人们购物的方式变得便捷、多样。网上购书也变成常见的方式,网上购书也适应了当今快节奏的社会生活,与此同时,满足顾客购买到更加丰富多样的书籍需求的同时,也大大提高了交易的效率。

电子商务模式的销售战略被人们着重认识,在这种情况下,需要更加便利和相应的方式来处理电商业务。为顺应需求,本系统在windows操作系统下,采用PHP+MYSQL及WEB相关技术开发,以及在Dreamweaver开发工具下实现一个网上书店系统。

该系统主要实现了网上购买书的过程,用户可以进行注册,在登录后对图书购买,个人信息的修改,订单管理等基本操作。管理员可以对用户、图书、订单、首页的轮播图、评论、图书分类进行对应的管理。真正做到网上就能快捷、方便的购买图书,享受购书的快乐。

关键词:PHP,MYSQL,网上书店系统


Abstract

  With the rapid development of e-commerce, more and more shopping platforms, people shopping becomes more convenient and diverse. Online book purchase has also become a common method. Online book purchase has also adapted to today’s fast-paced social life. At the same time, meeting the needs of customers for more abundant and diverse books has greatly improved the efficiency of transactions.

The e-commerce model's sales strategy has been recognized by people. In this case, it needs to be more convenient and corresponding to handle the e-commerce business. In order to comply with the requirements, the system is developed under the Windows operating system using PHP+MYSQL and WEB related technologies, and an online bookstore system is implemented under the Dreamweaver development tools.

This system mainly realizes the process of purchasing books online, users can register, purchase books after login, personal information modification, order management and other operations. Administrators can manage users, books, orders, homepage rotations, reviews, and book categories. Really online can quickly and easily purchase books and enjoy the happiness of books and reading.

Key Words: PHP, MYSQL, Online bookstore system


目    录

第1章 绪论

1.1 研究背景

1.2 研究意义

1.3 研究内容

1.4 论文组织

第2章 开发技术及工具

2.1 B/S架构简介

2.2 PHP语言简介

2.3 Adobe Dreamweaver工具简介

2.4 MYSQL数据库简介

2.5 AJAX简介

2.6 APACHE简介

第3章 系统需求分析

3.1 可行性分析

3.1.1 技术可行性分析

3.1.2 经济可行性分析

3.1.3 操作可行性分析

3.1.4 社会因素可行性分析

3.2 功能需求分析

3.2.1 系统数据流分析

3.2.2 系统用例分析

3.2.3 系统业务流程分析

3.2.4 功能需求概述

3.3 非功能需求概述

3.3.1 界面友好需求

3.3.2 操作友好需求

3.3.3 安全性需求

第4章 网上书店系统的设计

4.1 系统功能结构

4.2 系统功能流程

4.2.1 管理员操作流程

4.2.2 用户操作流程

4.3 数据库设计

4.3.1 概念设计

4.3.2 逻辑设计

第5章 网上书店系统的实现

5.1 系统前台实现

5.1.1 用户注册模块

5.1.2 图书详情模块

5.1.3 购物车模块

5.1.4 订单模块

5.1.5 收藏模块

5.1.6 个人中心模块

5.1.7 图书展示模块

5.2 系统后台实现

5.2.1 分类管理模块

5.2.2 轮播图管理模块

5.2.3 评论管理模块

5.2.4 图书管理模块

5.2.5 订单管理模块

第6章 系统测试和维护

6.1 目的

6.2 测试范围

6.3 测试背景与方法

6.4 黑盒测试

6.4.1 增加图书的等价类划分法测试

6.4.2 购物过程的业务流程法测试

6.4.3 购物车的因果图法测试

6.5 白盒测试

6.5.1 密码修改的判定覆盖测试

6.5.2 图书展示的路径覆盖测试

6.5.3 分类管理的语句覆盖测试

6.6 运行维护及存在问题

结论

参考文献

谢辞

附录1 部分关键源码及解释

1 购物车操作

2 订单提交

3 后台轮播图管理

第1章 绪论

1.1 研究背景

随着互联网技术的迅猛发展,上网的人数越来越庞大,在每家公司、企业的商业活动当中,其官方网站都发挥着巨大的作用。在当今时代下,建立一个美观简洁、功能强大的电子商务网站,对公司和企业的竞争发展有着非同凡响的意义。建立仅仅只能发布静态信息的网站,这样的平台已经无法满足很多公司企业的需求。现代的企业更需要的是一个功能强大,能够提供完善的电子商务动态服务的网站系统。

数据库的发展从20世纪中、后期开始萌芽,至今为止,已经发展、演变成为一套成熟的理论体系,其也成为计算机软件、手机app等中不可或缺的一部分[1]。现如今,数据库技术是一套机器化及智能化的数据管理、处理方法,旨在解放人类劳动力,使得计算机、以及手机应用能更加的普及,其最大的作用莫过于对大数据的处理和管理。

网上书店平台通过网络技术与人的结合,其以互联网技术为基础,在网上进行书籍销售。网上书店的发展不仅仅只是一个书籍销售行业的发展,它也带动着快递物流行业、网上银行等发展。置身于21世纪的我们,愈来愈和互联网密不可分。但是,不管我们处于何种时代,我们都离不开精神食粮的书籍。因此,人类社会离不开书籍,网上书店顺应发展就是电子商务发展密不可分的一部分。在这样的环境之下,网上书店行业也必定会迎来毋庸置疑的蓬勃发展。

1.2 研究意义

在各个行业竞争愈演愈烈的今天,提高行业工作的效率问题,以及工作之中的质量问题,是每个企业必须面对的最重要的难题。

开发网上书店可以解决客户手动到书城查找图书的繁杂工作,只需要通过计算机进行相关条件的查询,或通过其他方式来筛选图书,便可以轻易找到且购买需要的图书,大大的加快了图书需求的速度。

网上书店的开发不仅很大程度的减少了物力、人力的成本投入,而且能够打破时间和空间的束缚,使得看购书交易可以在任何地方、任何时间去进行,从而实现全天营业,不需要人工来进行交易的主要工作。同时,网上书店的开发可以开拓全世界的市场,对网上购物的发展有非常重要的意义[2]。

本课题立足于开发在网络平台进行图书销售的书城。以互联网形式推进对中国电子商务的发展。另一方面,对于应届毕业生,通过系统的开发,可以很好的发挥自己所学的专业知识,为将来的工作做好准备。

1.3 研究内容

本研究的主要问题如下:

(1)网上图书销售的背景与意义;

(2)用于实现系统的技术;

(3)开发系统的整体设计、相关数据库的设计;

(4)购物流程的展示及管理功能的实现;

(5)系统模块的测试。

1.4 论文组织

本论文通过对网上书店的开发背景、目的、意义、系统设计及实现的探究,可以将论文分为以下部分:

第一章:绪论。此章节简单的介绍了网上书店开发的背景、目的、意义等。

第二章:开发技术及工具。此章节介绍了开发系统的相关工具和技术。

第三章:系统分析。这部分对系统进行可行性分析、功能需求分析、以及非功能需求的概述。

第四章:系统设计。此章节对系统的整体功能结构做出定义,通过流程图对系统用户和管理员的操作流程进行说明。再对系统的数据库进行设计和建模。

第五章:系统实现。此章节详细的介绍了系统中主要模块的功能操作和代码实现。

第六章:系统测试和维护。此章节通过黑盒测试、白盒测试,检测系统健壮程度。以及系统运行维护说明。

结论:总结在系统的开发设计及实现中遇到的困难,以及对论文总体进行分析,说明不足与收获,以便改进。

第2章 开发技术及工具

整个系统使用PHP语言开发设计,采用的是B/S架构,结合MVC开发的思想模式,通过对数据的输入、处理、输出做合理的分离,更好的做到项目的整合和维护。基于本系统最重要的功能之一就是购物流程的快捷,所以为了提高购物流程的效率,采用ajax异步请求的技术来提高用户的体验。结合WAMP环境开发,选择MYSQL作为系统数据库。

2.1 B/S架构简介

浏览器/服务器结构,其是一种比较特殊的客户机/服务器结构,它是随着如今因特网信息技术的发展兴起,对C/S结构的一种改善,以及适应现代开发新需求的一种新结构[3]。它主要的服务对象也就是因特网,众所周知,因特网的强大作用范围达到可以覆盖全球的每一个角落,因特网解决了因距离所存在的问题,它在信息的共享方面更是可以说无可取代。而万维网则在因特网当中,起到了充当连接器的功能,万维网就如一个万用接口,其将因特网上的不同资源一一的串联在一起。而在万维网当中也是采用了B/S结构,也就是所谓的浏览器端和服务端,即B/S两端构成的结构。这种结构的所带来的最大优点就是可以将不同的客户端组合成同一种客户端,也就是易见的浏览器,并且下载和安装方便,简化了客户端所开发的高额成本[4]。其在扩展性方面同样是不能被传统客户端媲美的。

因此,在浏览器端上只要负责其中一部分任务,使得用户所需的硬件资源负担减少,而将主要的大部分任务执行转化到服务器上来。这样做的最大好处就是使得电脑的硬件成本大大降低了。

2.2 PHP语言简介

PHP编程语言(中文名:“超文本预处理器”,英文名:Hypertext Preprocessor)是一种流行的通用开源脚本编程语言。其语法特点吸收了C语言、JAVA以及Perl的特点,更加的有利于学习,PHP主要被适用于Web领域的开发[5]。JAVA、C、Perl以及PHP自创的语法都包含在PHP独特的语法风格在内。它执行动态网页的速度比Perl或者CGI更快速。使用PHP编程语言开发出的动态页面相较于其他编程语言来说,PHP则是将程序的执行嵌入到对应HTML文件中,其比完全生成HTML标记的CGI执行效率要高更多,PHP同样可以执行被编译之后的代码,编译过后,程序可以达到加密作用,及优化代码的运行,代码的运行效率要更快。

2.3 Adobe Dreamweaver工具简介

Adobe Dreamweaver的简写的“DW”,中文名为:“梦想编织着”。Adobe Dreamweaver 是结合网站管理、网页制作于一体的即写即得的文本代码编辑器。通过其对CSS和HTML及JavaScript等相关的支持,使得网站的建设可以被设计人员、开发人员在任何地方被快速制作。

Adobe Dreamweaver的接口即写即得,也就是HTML编辑的强大功能,通过使用简化的智能编程引擎,可以快捷的创建、编码和有效的管理动态网站[6]。以及访问代码的提示,即可迅速的了解到CSS和HTML及其它的Web标准。通过利用视觉辅助的功能来提高网站开发速度、减少错误。

2.4 MYSQL数据库简介

MYSQL是现在流行的开源数据库,其是一个完全跨平台的网络化关系型数据库管理系统,由瑞典的MYSQL AB公司所开发。其是由一只名为Sakila的海豚作为象征符号[7]。现如今运行速度上被称为最快的SQL语言数据库就是MYSQL数据库。其可以直接在网上下载来用,不需要进行付费。

特点:

(1)MYSQL将数据存储在表格当中,其使用标准的SQL(结构化查询语言)访问数据库。

(2)MYSQL是一款完全免费的软件,其资源在网上可以轻易下载,并且可以查看其源文件,也可以对其进行必要的修改。

(3)MYSQL的功能很完备,运行效率高,有很好的安全性。

(4)MYSQL是一个C/S系统,其服务器在客户端上,服务器嵌入系统中使用,具备多线程,可以使多个且不同的管理工具、客户机被支持。

2.5 AJAX简介

AJAX的全称asynchronous JavaScript and XML,即异步的JavaScript与XML,其按照几种不同的技术组合起来,协同发挥功能。具体包含了XHTML和DOM、XML CSS、和XSTL、JavaScript和XMLHttpRequest等[8]。当中的每一种技术都不是独立存在的,且也不仅仅只是一项技术,其实际上是几种技术各自发挥其职,以更强大、全新的方式组合在一起。

AJAX最突出的三大特征是:基于JavaScript脚本、XML封装数据与异步交互。这三个特征可以让用户在修改网页上信息的时候更加方便,并且其无需向服务器重新发出新的请求与刷新页面。与此同时,AJAX不仅大大的提高了用户网上体验的满意度,而且也大大的缓解了服务器对处理数据方面的压力难题,将其中一部分的处理功能分给了客户端计算机上共同给处理,使得计算机的资源得到了更加合理的分配。这也就使得AJAX技术被迅速发展和众多网页应用的原因所在。

2.6 APACHE简介

Apache是一种开源的网页服务器,它具有跨平台性的特点,可以在大多数系统下运行。Apache具备最新的HTTP/协议,多种HTTP认证方式都支持,即支持安全Socket层(SSL),也支持包含指令(SSI)的服务器等特性[9]。

本系统是基于B/S开发的书店系统,使用PHP加Apache服务器来开发,是一种绝佳的选择。

第3章 系统需求分析

3.1 可行性分析

3.1.1 技术可行性分析

本系统采用在大学课程中掌握的PHP程序设计语言和MYSQL数据库开发,即便技术上遇到障碍,也可以通过浏览相关书籍资料、询问老师同学、或者通过技术论坛等得到解决方案。

3.1.2 经济可行性分析

开发本系统所需要的人工成本低,结合成熟的开发环境、熟悉的开发技术、且该目标系统相对来说并不复杂,开发周期较短。开发完成之后,在该系统的使用过程当中,可以更直观,且可以简化用户的操作,符合用户的操作习惯。因此,开发该系统的经济收益将远大于投资。从经济角度去考虑,可以对该系统进行开发。

3.1.3 操作可行性分析

完成该系统的开发大概需要二个月的时间。前半个月主要以收集资料、以及查阅相关系统开发的案例为主。接下来,对系统进行需求分析及系统的分析设计,数据库的分析设计,以及界面中间的连接。在之后的一个半月再对系统进行切实的开发和测试。因此,该系统的开发在准备充分和技术掌握良好的情况下是可行的。

3.1.4 社会因素可行性分析

由于整个网上书店系统的设计与实现是由独自设计开发,不存在开发及使用权限的顾虑,且系统开发的设计实现都符合国家所制定的法律法规。因此,该系统的开发可以进行。

3.2 功能需求分析

3.2.1 系统数据流分析

数据流图能体现数据信息输入、输出的过程变换,是用户和开发者沟通的工具。通过画出系统数据流图,更能清晰地把系统角色的功能需求及其相关联系体现出来[10]。为了更准确的分析功能需求,该系统所涉及的功能数据流图如下。第0层数据流图如图3-1所示。

图3-1 第0层数据流图

第1层数据流图如图3-2所示。

图3-2 第1层数据流图

第2层前台数据流图如图3-3所示。

图3-3 第2层前台数据流图

第2层后台管理数据流图如图3-4所示。

图3-4 第2层后台管理数据流图

3.2.2 系统用例分析

(1)用户用例图

用户是系统的主要对象之一,用户可以浏览相关图书商品信息、查询相关图书、在注册登录后可对图书进行加入收藏、移出收藏、加入购物车、移出购物车、对购物车的图书下单结算、对已下订单进行查看、确认收货、以及相关图书的评论、管理个人信息等操作。用户的具体用例图如图3-5所示。

图3-5 用户用例图

(2)系统管理员需求模型

系统管理员是系统的另一个对象,通过登录之后,可以进行用户管理、图书管理、订单管理、评论管理、分类管理、首页轮播图管理等操作。具体管理员用例图如图3-6所示。

图3-6 系统管理员用例图

3.2.3 系统业务流程分析

用户购买图书场景:用户通过注册登录,由系统校验成功后,便可进行加入购物车、收藏、购买等操作。如果登录失败,则无法完成相关后续操作。如图3-7所示。

图3-7 用户购书时序图

管理员登录场景:管理员通过输入账号密码后,系统将提交的登录信息与数据库数据进行校验,登录成功跳转到后台管理界面。否则,提示登录失败信息。如图3-8所示。

图3-8 管理员登录时序图

管理员操作场景:管理员通过输入账号密码,由系统校验成功后,方可对书店后台进行相关管理。如果登录失败,则无法完成相关后续操作。如图3-9所示。

图3-9 管理员操作时序图

3.2.4 功能需求概述

根据以上的分析可得,本系统需实现的主要功能如下:

(1)图书展示模块:主要功能包括幻灯图片显示图书、新品上架、热卖商品、好评商品和按分类显示等。

(2)图书详情模块:显示图书详细信息,查看评论,收藏图书等。

(3)搜索模块:可以根据关键字收拾图书信息。

(4)购物车模块:主要功能包括添加至购物车、查看购物车、修改购物项,从购物车移出图书。

(5)收藏模块:对已收藏的图书进行查看、加入购物车、移出收藏。

(6)订单管理模块:订单查看功能,确认收货,对已经收货的图书商品进行评论。

(7)用户管理模块:主要功能包括用户注册、用户登录和用户资料、修改登录密码,修改个人信息。

(8)完善的后台管理功能

系统管理员在登录后,可以根据实际情况对图书信息,图书分类,用户订单,用户评论,首页轮播图,用户信息进行相应的维护管理等操作。

3.3 非功能需求概述

3.3.1 界面友好需求

网上书店系统的用户端为普通的用户人群,为满足用户的使用的美观需要,提高软件使用的吸引力,延长用户的使用时间,在前端编写部分将会使用流行框架和部分插件功能,以及流行的简约布局设计等[11]。

3.3.2 操作友好需求

该系统受众是普通人群,操作设计会尽量在保证数据完整性和一致性的前提下,进行简单易行的设计,方便用户的正常使用。

3.3.3 安全性需求

 网上书店系统的用户信息基本有手机号码、电子邮箱、用户密码等,用户在购买过程中还会进行支付操作。因此要求在访问数据库前必须进行相关的访问认证,在数据传输的过程中尽量的去减少重要信息的传输[12]。若对重要相关信息进行传输,应该进行信息加密。


第4章 网上书店系统的设计

4.1 系统功能结构

网上书店系统的功能设计相对简单、实用。前台系统功能模块分为图书展示模块、图书详情模块、搜索模块、购物车模块、收藏模块、订单管理模块、用户管理模块,后台管理系统分为管理员模块、图书管理模块、分类管理模块、订单管理模块、首页轮播图管理模块、用户管理模块、评论管理模块。该系统的具体模块结构分布如图4-1系统功能结构图所示。

图4-1 系统功能结构图

4.3.2 逻辑设计

根据数据库的概念设计可得E-R图对数据库逻辑结构进行设计,转换为关系模型后,可得以下表结构:

(1)用户表(用户编号,用户名,手机号码, 用户密码,电子邮箱)

(2)图书表(图书编号分类编号,图书名称,图书图片,图书信息,优惠价格,价格,库存量,销量,时间戳)

(3)订单详情表(订单编号订单号,书店名称,收货人,订单价格,支付方式,下单时间,状态码,手机号码,收货地址,用户编号,备注)

(4)评论表(评论编号用户编号,评论内容,评论时间)

(5)收藏表(收藏编号用户编号图书编号

(6)购物车表(购物车编号购物编号商品编号,总数)

(7)分类表(分类编号,分类名称,对应图书编号

(8)订单表(订单编号订单号图书编号,总数)

(9)管理员表(管理员编号,管理员账号,管理员密码)

(10)轮播表(轮播编号,轮播图片)

说明:由于收藏与用户、图书的联系是1:m:n,所以把用户表的主键(用户编号)和图书表的主键(图书编号)作为收藏表的外键;由于图书分类与图书的联系是1:m,所以把分类表的主键(分类编号)作为图书表的外键;由于订单与图书的联系是m:n,所以把图书表的主键(图书编号)作为订单表的外键。

根据以上的表结构,结合各表间的主外键联系可以得到如下图4-12所示的数据库逻辑关系图:

图4-12 逻辑关系图

根据上面的数据库概念设计与逻辑设计可得相应数据库表结构设计,且生成对应的数据库表,各个表的字段内容如下所示。

表4-1 add_order表

字段名

数据类型

主键/允许空

字段含义

oid

INT(11)

PRIMARY KEY

订单编号

orederNum

INT(11)

PRIMARY KEY

订单号

shopName

VARCHAR(32)

NOT NULL

书店名称

rcvName

VARCHAR(32)

NOT NULL

收货人

price

FLOAT(10,2)

NOT NULL

订单价格

payment

INT(11)

NOT NULL

支付方式

ordTime

BIGINT(20)

NOT NULL

下单时间

status

INT(11)

NOT NULL

状态码

phone

BIGINT(11)

NOT NULL

手机号码

addr

VARCHAR(40)

NOT NULL

收货地址

userId

INT(11)

PRIMARY KEY

用户编号

beizhu

VARCHAR(100)

NOT NULL

备注

表4-2 admin表

字段名

数据类型

主键/允许空

字段含义

aid

INT(11)

PRIMARY KEY

管理员编号

auname

VARCHAR(32)

NOT NULL

管理员账号

apwd

VARCHAR(32)

NOT NULL

管理员密码

表4-3 collection表

字段名

数据类型

主键/允许空

字段含义

collectionId

INT(11)

PRIMARY KEY

收藏编号

userId

INT(11)

PRIMARY KEY

用户编号

productId

INT(11)

PRIMARY KEY

图书编号

5.2.4 图书管理模块

图书管理模块可以对前台的所有图书信息进行管理和展示、以及对相关图书的名称、分类、价格、图片、简介、库存量等进行对应的编辑修改,删除不再销售的图书,增加要上架图书产品等一系列功能。如图5-14所示。如图5-15所示。

图5-14 图书管理界面

图5-15 增加图书界面

关键代码如下:

$(function () {

        $('#uploadSubmit').click(function () {

            var data = new FormData($('#uploadForm')[0]);

            $.ajax({

                url: 'doUpdateBook.php',

                type: 'POST',

                data: data,

                contentType: false,

                processData: false,

                success: function (data) {

                    console.log(data);

                    if(data){

                        alert("更新成功!")

                    }else{

                        alert("更新失败!");

                    }

                },

                error: function (data) {

                    console.log(data);      }

            });

        });

    })

function getname($exname){

    $dir = "../uploadfile/".date("Y-m")."/";

    if(!is_dir($dir)){mkdir($dir,0777);}

    return $dir.time().genRandomString(12).".".$exname;

}

通过JAVASCRIPT对相关的图书信息数据进行逻辑判断,再利用AJAX对数据库操作,实现图书信息数据的增加、修改、删除。

5.2.5 订单管理模块

管理员可以对用户已下的订单进行删除、修改订单信息,包括订单地址,订单状态的修改操作等。如图5-16所示。

图5-16 订单管理界面

关键代码如下:

<?php

$oid=$_REQUEST['id'];

$sql="select * from add_order where oid=$oid";

$result=mysqli_query($conn,$sql);

$orderList=mysqli_fetch_all($result,MYSQLI_ASSOC);

foreach($orderList as $i=>$o){

    $oid=$orderList[$i]['oid'];

    $sql="select id,title,pic,price from product where id in(select productId from order_detail where orderId=$oid)";

    $result=mysqli_query($conn,$sql);

    $plist=mysqli_fetch_all($result,MYSQLI_ASSOC);

    $orderList[$i]['productList']=$plist;

}

$order=$orderList[0];

$product=$orderList[0]['productList'][0];

?>

通过JAVASCRIPT对相关的订单信息数据进行逻辑判断,再利用AJAX对数据库操作,实现订单信息数据的修改、删除。

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值