基于PHP+Mysql实现商城网站【100011347】

商城网站设计与实现

摘要

随着互联网的发展和普及,基于电子商务的网络购物在中国已经被人们所认可,我们的日常生活已经离不开网购。相对于传统的实体经济而言,电子商务的出现打破了传统的实体经济交易模式,将整个交易流程电子化、数字化,一方面以电子商务实现了电子流代替了实物流,因此可以大量减少人力、物力,极大地降低了运输成本;另一方面突破了时空的限制,使得交易活动可以发生任何时间,任何地点,从而大大提高了效率。因此人们更喜爱网络购物。针对这种情况,我以HTML5+JavaScript+CSS3+PHP为开发技术,设计开发了一个基于Web的“生活一家”商城网站。“生活一家商城”网站通过Internet互联网打造一个集搜索、下单、购买一体的一站式网上购物平台,综指是让顾客买的“省心”,用的“放心”。

本商城网站分用户系统与管理员系统。

用户系统:用于用户浏览商品信息,搜索商品,选择购买的商品放入购物车,查看商品详情,查看服务商家联系方式和地址,购买商品数量的编辑、删除,用户结算。用户个人中心,用于用户个人信息管理,主要包括个人资料管理、订单管理、钱包管理、收藏商品管理、收货地址管理以及意见反馈。

管理员系统:用于管理商城与账号权限管理,包括商品添加,商品管理,用户添加,账户管理,商品分类管理,订单管理,权限管理等等。

关键词】电子商务,网上商城,PHP,生活一家,购物网站,一站式

一、前 言

网上在线购物随着互联网的发展日益成熟,当前各大电商企业除了扩充商品种类、提升物流及售后服务外,也在大力发展跨境网购、扩充渠道,把网上购物引入农村。在当前电商大环境已定的情况下,一些商家企业把目光对准母婴、医疗、家装等垂直电商领域深度挖掘,这些将成为网上在线购物的新发展点。

据统计仅2014年在中国网上购物的交易规模达2万多亿元,相比去年提高45%,持续保持高增长的态势。2014年,网上零售市场增长迅猛,渗透率稳步提升,已成为促进国民经济国民经济重要动力,到了第四季度“双十一”“双十二”各大电商的促销季又再次引爆网购热潮,网购对中国整个零售产业的影响更加深远。随着阿里巴巴、京东等电商巨头陆续上市,网上零售市场格局已经清晰明了,淘宝、天猫、京东为电商企业第一集团军,从所占市场份额、业务创新和服务质量,他们都处于领先地位。

基于Web的生活一家商城网站,相当于现实世界当中的超市,其中的区别是网上商城利用电子商务的各种技术手段,实现从买卖的环节的虚拟超市,这样可以减少商品从生产到售出的中间环节,网购打破了传统的流通模式,使得生产者(工厂)和消费者(用户)的直接交易成为可能,并且消除商品运输成本与下级代理商的差价,从而提高普通消费和市场流通的发展空间。在一定程度上改变了整个社会经济运行的方式。通过基于电子商务的网上购物平台来进行贸易活动,买家卖家从最开始洽商谈、签约流程到后面的订货、支付流程等,都无须面对面进行,均通过计算机互联网络完成,整个交易完全虚拟化,节省了双的大量的时间与精力。电子商务中的买卖双方整个交易流程都是在互联网上进行的,因此所有的交易数据都能查询、追踪,交易透明化,尽能的还消费者以利益,带动商家企业更好、更快发展,并且为促进国家经济稳定快速发展,推动国内生产总值提高做出贡献。

1.1 项目概述

1.1.1 编写目的

项目概述是把整个项目的开发计划、开发过程、开发进度、需求以及在开发期间所遇到的困难和问题以文档形式记录下来,方便依据此计划展开工作和检查项目开发工作完成,保证项目顺利开发成功。

1.1.2 背景

设计项目名称:“生活一家”商城网站设计与实现

用户:商城超级管理员、普通管理员、各模块管理员、注册用户、游客

本项目为2017届本科毕业生的毕业设计

1.1.3 术语定义

名 称 说 明
PHP Hypertext Preprocessor,是一种通用的、开源的、服务器端的脚本语言。PHP语法吸收了多种语言的精髓(C语言、Java和Perl),利于学习,使用简单,主要适用于Web开发领域。
HTML5 它万维网的超文本标记语言(HTML)的一个新标准,相较与HTML4.0,HTML5简化了语法,新增了许多API为开发者提供极大便利。
JavaScript JavaScript是一种页面脚本,是面向对像的客户端脚本语言。通过执行程序脚本片段,我们可以对页面及页面上的元素进行操作,实现特定的功能与效果,web动态网站交互效果实现的基石。
CSS CSS(CascadingStyleSheet)叠样式表,web网页开发必不可少的技术,主要控制网页的布局、字体样式、标签颜色、背景、动画效果等。
SQL 它是一种数据库查询和程序设计语言,主要用于对数据库的增、删、改、查操作,是管理关系数据库系统必不可少的工具。
AJAX 英文名Asynchronous JavaScript and XML,AJAX是指一种创建交互式网页应用的网页开发技术,主要用于浏览器与服务器的异步交互,不刷新页面,为用户提供更好的体验
Hbuilder HBuilder专为前段开的打造的一款。快,是它有强大的语法提示和代码输入法、代码块等,内部集成了服务器,支持外部服务器扩展,它能大幅提升开发人员对HTML、js、css的开发效率。
Apache Apache是当前最流行的Web服务器软件之一。它可以运行在几乎所有广泛使用的计算机平台上,拥有强大的跨平台性和较强的安全性,所以被开发人员喜爱,因此被广泛使用
Navicat Premium Navicat premium是一款数据库管理工具,设计简单,易于使用,它可以当前所有广泛使用数据库, MySQL、SQL Server、PostgreSQL 、Oracle等,可视化的图形操作界面让开发人员管理不数据库更加方便,极大的提高开发效率。
Vue.js Vue是当前三大主流前端框架之一,是一个渐进式的MVVM框架。Vue.js 实现了View层Model层的数据双响绑定,开发人员只需要关注数据,数据改变就会驱动视图变化,无需再进行繁琐的dom操作。

1.1.4 论文的主要工作

本文首先对大量的资料进行仔细的研究,然后在此基础上再对系统进行了详细的需求分析,介绍了系统的功能模块及后台数据库设计与实现,对系统将要实现的功能模块有了大致的架构。然后,在系统需求分析基础上,论述系统的整体架构设计。根据前文的系统需求分析明确系统的设计原则和目标,并详细论述目前几种主流的体系结构以及选取B/S结构的原因,接着对本系统的各个功能模块进行详细的设计和论述,并对开发时遇到的问题以及解决方案进行了详细的描述。再次,在系统的实现中,对系统各功能模块是如何实现加以详细介绍,然后对以上功能模块的详细实现过程进行阐述,以及对系统页面操作及关键技术说明。最后,对行活一家商城网站的设计与实现进行了总结,说明了系统的特点和优势,并提出了本商城系统未来发展方向和不足之处。

1.1.5 论文的组织结构

本论文按研究进程展开,总共分为成了八章。第一章主要介绍了本课题的研究背景及意义,通过对国外内的研究现状介绍与分析,总结出目前网上购物平台所普遍存在的问题。第二章对本商城系统进行仔细的需求分析、系统功能分析,并以此作为本课题研究的重要的科学理论依据。第三章主要是对本商城系统的开发技术,开发工具,开发环境以及数据库配置的介绍。第四章论述了系统的部分功能模块的详细设计以及数据库分析。第五章对本商城系统各个模块的实现进行详细说明,前台实现和后台实现。第六章介绍商城系统的测试内容,以及测试的结果。第七章是系统运行,叙述该系统能实现的功能,以使用户了解该系统的运行配置和操作应用。第八章对系统进行总结分析,提出不足与未来展望。附录部分包含了系统的部分核心代码。

1.1.6 系统开发计划

  1. 系统调查(2016.12.30—2017.1.22) 分析本系统要实现什么,提供什么服务

  2. 可行性分析(2017.1.23—2017.1.30)从市场、用户、技术等方面分析系统的可行性

  3. 需求分析(2017.2.1—2017.2.15)根据用户需求,确定系统需要实现的功能是什么

  4. 概要设计(2017.2.16—2017.2.20)概括说明系统应该如何实现

  5. 详细设计(2017.2.21—2017.2.25)设计出系统的模块以及如何实现

  6. 系统实现(2017.2.26—2017.4.19)各模块功能的具体实现,编写程序代码

  7. 系统测试(2017.4.21—2017.4.30)对系统进行测试,debug工作

  8. 运行维护(2017.5.1—现在) 系统投入运行,并进行维护

1.2 “生活一家商城”网站概述

该商城系统是一个基于电子商务的集搜索、下单、购买一体的一站式网上购物平台,“生活一家商城”网站为用户提供商品信息浏览、加入购物车购买、收藏夹以及售后服务功能。综指是让顾客买的“省心”,用的“放心”。

该商城系统的开发主要分前端页面数据渲染与交互和后台逻辑实现与数据库操作。功能上分为用户系统与管理员系统。前端应用程序注重用户体验,界面美观大方。后台数据库要求数据一致性、稳定性、与安全性。

1.2.1 “生活一家商城”网站的基本特点

  1. 网站是一套软件系统,一个网上商城。

  2. 前端界面经过精心设计,美观大方,可以给于良好的用户体验。

  3. 提供信息丰富,涵盖生活中衣、食、住、行。

  4. 为用户提供购物保障,售后服务。

  5. 意见反馈模块,能及时接受用户的建议与意见。

1.3 课题的背景与意义

1.3.1 课题的背景

随着互联网技术的快速发展,计算机网络技术有了重大突破,商业化的国际互联网Internet诞生了。这刚好为电子商务发展在全球的构建一个的必不可少的网络平台。 互联网为世界提供了最宽广的网络平台,在互联网上不仅能同时快速、没有地域限制地传递大量的信息(数据、文件),而且还实现了网络营销、电子支付,提供各种新型的服务。

世纪90年代,中国开始出现电子商务,根源在于中国互联网的接入以及世界一些知名企业的影响!这个时候的电子商务还只是一种概念,大多数人还不懂什么是电子商务。但在这时期中国已经开出现了一些的基于电子商务的企业,如8848,易趣等!慢慢的电子商务逐渐走进人们的生活,它开始被大家认识。到了21世纪电子商务企业犹如雨后春笋般地出现,他们的业务范围涉及B2B、B2C以及C2C等多方面发展!到现在为止电子商务已经涵盖各行各业。当前电子商务代表性企业有:阿里巴巴、京东商城、苏宁易购、亚马逊中国等,它们都取得了巨大的成功,

1.3.2 课题的意义

本质是在虚拟的互联网上形成一个市场交换场所,它能打破时空的界限,实时的为消费者提供各类商品详细信息包括商品的供应量、商品的需求量、商品的发展状况以及买卖双方明细,从而使得商城中买家卖家都能能够更便捷地了解市场,更准确地把握市场动向。

是基于电子商务的网上购物平台,面电子商务又是一个拥有巨大发展潜力的市场,它具有远大的发展前景。“生活一家商城”具有灵活的交易手段、买卖双方双向信息沟通和交货方式快的特点,将会为消费者带来巨大的便利,促进人们消费水平的提高。生活一家商城的推广将会打破了买卖双方时间空间的限制,不但改变了传统的实体经济交易模式,还极大的加速了整个社会的商品流通,突破了时空的限制,使得交易活动可以发生任何时间,任何地点,从而大大提高了效率。帮助商家降低运输的成本,从而提高商家竞争力。“生活一家商城”可以给予消费者更多更好的的选择,提高了人们购买商品的便利性。它对我们生活的方方面面包括的思维方式、交易方式、经济活动等都将产生极大的影响。

1.4 国内外电子商务研究发展状况和分析

1.4.1 国内电子商务的发展

我国电子商务全局保持了快速发展的势头,我国电子商务已经迈入规模发展阶段,成为我国经济发展的主力军。市场份额具有明显变化,网络零售市场对我国经济的贡献逐年平稳增长。从市场结构上来看,因各企业之间电子商务的交易额相差较大,企业与企业间的市场仍是我国电子商务的中坚力量。但近年来,受国际经济增速放缓、国内经济发展速度趋于平稳的大环境的影响,多数企业正在面临货物积压,消费市场低迷,企业与企业间市场份额下降明显等问题。网络购物规模发展迅速,线上零售市场交易集中度高,从市场规模的角度来看,网络购物的规模发展迅速,对零售市场的贡献日益突出。从增速的角度来看,在网购基数日益增大,市场份额扩大升入新阶段,以及网购消费者趋于理性化,网购增速自然回落,从高速增长转化为快速增长成为当下网购增速的普遍现象。电子商务企业分布地区密度大、过于集中,区域发展不平衡,相对发达的沿海经济区发展规模较大,而中、西部地区相对落后,造成地域发展不平衡的现象。

1.4.2 国内著名电子商务平台

1.天猫商城

在B2C领域,天猫的地位难以撼动,它是纯开放平台,具有平台规模大,商品种类丰富,用户流量大,平台维护成本低等特点,还有强大的阿里巴巴提供全方位的支持。盈利点最要来自流量、广告费和技术服务费等。

2.京东商城

京东商城也有多个优势,有物流强大、正品保证、其中自建的物流服务是京东商城的特色,他们的口号是全年无休,免费上门接货,标准门到门服务,覆盖全国,京准达,火速到家!而他们也确的很好的实现了,为人们所认可。京东物流在2017年已经开始为第三方提供物流服务,物流也正式为京东盈利。虽说京东是开放网上购物平台,但是现在京东最主要的盈利方式是自营,要做开放网上购物平台还是任重道远。

1.4.3 国外著名电子商务平台

1.IndiaMART

IndiaMART印度的最大的在线B2B电子商务市场平台,主要服务是连接全世界的采购商与供应商。截止目前为止已经有120多万家供应商和650多万个买家在改平台上进行交易活动。自IndiaMART成立以来,赢得了大大小小的奖项和提名,其中最具有代表性的是“红鲱鱼”奖和印度崛起奖。IndiaMART还得到了印度媒体的大力宣扬,以此为榜样激励中小企业的发展。

2.iOffer

iOffer成立时间是2002年,总部建立在美国的旧金山。iOffer是一个大型的网络交流社区,您不但可以在这里购买商品,还可以成为卖家销售商品,就像在现实生活中一样可以与人讨价还价,截止目前为止有价值高达100多万美元商品在这里被出售的。在这里您甚至可以购买和销售任何东西,当然不能购买和销售违法商品。

1.4.4 存在不足的分析

  1. 网上购物平台完全依赖互联网,一但互联网出现问题,将无法进行正常的交易活动。

  2. 消费者的观念跟不上,认为网购不安全,没有保证。

  3. 网上购物交易的安全性不能得到充分保障,存在一定交易风险。

  4. 目前电子商务的管理还不够规范,消费者维权困难。

二、技术基础

2.1 C/S体系结构

2.1.1 C/S体系结构的软件

C指的是client客户端,S指的是server服务器端,比如QQ程序,我们必须下载一个QQ客户端,而且必须连接上服务器才能正常工作。这种有客户端下载安装的,然后通过客户端程序访问服务器的就是C/S体系结构软件(如图2.1.1)。通过C/S结给予可以利用客户端与服务器端硬件的优势,将任务进行合理的分配,降低了整个系统的开销。现今仍有许多软件系统是属于C/S体系结构的软件,但是因为传统的C/S体系结构的软件有很多缺点,已经渐渐被B/S体系结构软件取代。

2.1.2 C/S体系结构软件的特点

传统的C/S体系结构使用开放模式,但这只是系统开发中一级的开放性而以,在个别应用中不管是Client客户端还是Server服务器端都还需要安装特定的软件才能正常运行。因为传统的C/S体系结构不能提供给客户其真正期望的完全开放环境,市面上操作系统种类较多,C/S体系结构的软件就要为每种操作系统开发能在该操作系统上运行的特定的版本,再加上C/S体系结构的软件更新换代速度很快,已经不能支持大量局域网用户同时使用,而且它的整体开发代价比较高,开发效率低,所以传统的C/S体系结构渐渐被淘汰。

2.2 B/S体系结构

2.2.1 B/S体系结构软件

B/S体系结构的软件是应用软件中的分支,比如QQ有浏览器版的QQ,在用户没安装QQ客户端的情况下,用户打开浏览器,输入账号密码一样能使用QQ,这就是B/S体系经结构的软件。所以现在都在从传统的C/S体系结构向B/S体系结构演变。可以这么说,只要是你C/S结构能够完成的事大部分B/S也基本能完成。B/S结构的具有以下特点:分布性强、维护方便且易上手、开发简单且共享性强、总体拥有成本低等。

在这里插入图片描述

图2.2 B/S体系结构图

2.2.2 B/S体系结构软件的特点

B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器.而其余如数据请求、加工、结果返回以及动态网页生成、对数据库的访问和程序的执行等工作全部由Web Server完成

2.3 C/S与B/S结构不同点分析及比较

不同方面 B/S与C/S的不同点
硬件环境不同 C/S体系结构软件要以局域网为基础建立,通过特定的服务器来提供连接和数据服务支持。C/S体系结构软件所需要处理的用户是固定的,面且必须在相同区域,要操作系统必须是相同的。而B/S是建立在广域网的基础上,数据信息可以自己管理,有比C/S更强的适应范围,跨平台性强,与操作系统平台关系最小,有浏览器就能正常运行。面向广大用户群体。
结构不同 C/S体系结构软件一般只采用两层结构构建,而B/S结构是采用三层结构构建。但B/S体系依然是采用以太网或环形网为网络结构。因为C/S体系只有两层结构,它的网络通信量只有Client客户端与Server服务端的通信量,所以,C/S处理信息的速度比B/S快。
处理模式不同 B/S体系的处理模式,极大的减少了对客户端的依赖,只要一个能正常冲浪的浏览器,就能正常的体验软件。而C/S体系是依赖客户端才能与服务器进行链接,没有客户端就无法体验软件。
系统维护不同 软件的生存周期中开销最大的一部分是系统维护。C/S体系程序由于拥有整体性的特点,所以必须从整体考虑并解决使用过程中出现的问题。而B/S结构体系软件,客户端是不需要安装及维护的。
速度不同 由于C/S体系软件在逻辑结构上比B/S体系软件少一层,对于执行同样的任务,C/S体系软件执行速率总是比B/S体系软件要快。因此C/S体系软件相比于B/S体系软件在处理大量数据有优势。

2.4 动态网站开发所需的Web构件

Web动态网站开发相比于其他的应用程序开发有很大的不同,首先,使用的技术上,它由多种技术结合而成。每种技术之间的功能是独立的,各自负则自已的那一块,但它们又要相互配合才能完一个Web动态网站的构建。

网站有客户端和服务 器端。浏览器想显示界面,而一个界面不光是同种语言写成的,有最少3种语言,HTML、JavaScript、CSS。服务器端也得有发布服务器的软件,数据库也得有存取数据的软件。所以这些web开发所需的构件。面不是单一的一种语言。

2.5 几种主流的Web应用程序平台

Windows + IIS + SQL Server + Asp(Asp.net)

这是微软系列应用程序平台,ASP技术上手简单,并且可以基本实现web动态网站构建的大多数需求,学习技术门槛较低,因此ASP相对应的技术成本也比较低,是目前市场上较为流行的技术,部分大学有开设这门课程。iis是windows系统的服务器软件,有很大的局限性,不能linux操作系统环境下运行;它的优点是跟window一样,简单的图型操作界面,操作简单并且管理方便。SQL Server是一个关系数据库管理系统,它有以下的优点:易用性高、安全性较好、良好的性价比等。

Unix+ Tomcat + Oracle+ JSP (JavaEE)

Unix是所有操作系统中性能最好的,这个系统是针对专门的机器写的,正常情况下从来不会出现死机,特别稳定。但价格非常高昂,几十万到几百万都有。Tomcat就一个Web服务器软件,具有很多优点包括开源、安全性高、响应速度快、性能稳点等。Oracleoracle 是数据库的一种,与其他的数据库不同,是他不是免费的,开发成本高。但是高额的开发成本带同时具有强大的性能,为许多大公司认可。

Linux + Apache + MySQL + PHP (LAMP、LNMP)

Linux是一个自由的,免费的,源码开放的。它是开源软件中最著名的例子。其最主要的目的就是为了建立不受任何商品化软件版权制约的,全世界都能使用的类Unix兼容产品.Linuxr的优点有:低软件成本、低移植成本、高性能高稳定、低管理成本、可扩展性等很多优点,而我们把服务器部署在Linux操作系统上将会使得软件更加的稳定、安全、高效以及出色的性能。Apache是当前最流行的Web服务器软件之一,拥有强大的跨平台性和较强的安全性,所以被开发人员喜爱,因此被广泛使用。MySQL是当前主流的关系型数据库,他具有的体积小,响应速度快,免费等特点;是一种通用的、开源的、服务器端的脚本语言。PHP语法吸收了多种语言的精髓(C语言、Java和Perl),利于学习,使用简单,主要适用于Web开发领域。开发人员将这则组合中的Linux操作系统换成Window就叫做Wamp,它们的是大优点就是每一个软件都是开源且免费的。这种免费而且开源的方式,吸引了大量的开发人员,这样的特性对企业和个人具有极大的吸引力,你可以花费一分钱就能想用“专业”的商用软件。特别是在互联网方面,不用再为软件的发布支付任何许可证费就能开发并应用基于LAMP的工程。它的开源性可以让全世界的开发人员共同开发,这样会产生丰富的资源,为项目开发的学习和借鉴提供了极大的便利。 再讲的具体一点就是,如果你使用它们你就可以找到免费的、强大的平台使用,但是如果你用Asp.net/Asp+IIS+SQL server就很难免费了。

2.6 系统开发平台

2.6.1 系统开发环境

本商城系统开发环境采用的是 Windows 10的操作系统,使用Apache来搭建服务器环境,选择Hbuilder作为开发工具。开发环境的所使用的数据库服务器是本机所用的服务顺,安装下载WampServer,WampServer是Windows+Apache+Mysql以及PHP集成安装环境。

开发数据库硬件配置如下:

intel® Core™ I7-4700MQ CPU 2.4GHZ 8.OG DDR5内存,750G 机械硬盘

2.6.2 平台的搭建与优点

1.“生活一家商城”平台的搭建

本商城系统主要运用现有的网络和计算机等硬件设备资源,通过Internet技术,如 TCP/IP协议,采用动态网站开发技术HTML5+CSS+Vue+WampServer,通过WEB服务器、数据库服务器,把商城软件发布到网上。

2.系统优点

本商城系统前端页面是经过UI设计师精心设计的,界面美观大方,操作简单通俗易懂。前端数据渲染与交互采用当前三大主流前端的Vue框架,代码结构简单,易维护。后台技术采用Windows+ Apache + MySQL + PHP 当前开发最流行的web网站开发组合,公认的低成本高效率。

2.6.3 目的

通过对“生活一家”商城网站的设计与实现,学习B/S结构体系软件的开发与应用,学习和掌握Apache + MySQL + PHP技术,并能使用该技术建立更完美的网络购物平台。

2.7 系统设计结构

本商城系统是基于B/S模式,使用Apache + MySQL + PHP组合设计方式,其中英特网提供基础的网络设备,通过接受浏览器传来的Http请求,Apache 服务器接受到请求,PHP挂载模块通过SQL调用MySQL数据库,编译处理生成合法的html文件,,再通过Internet传到客户端,浏览器接受响应并解析html文档,结构图如2.3:

在这里插入图片描述

图2.3商城系统的设计结构

三、系统分析

3.1 引言

系统分析是整个系统开发过程的最重要的环节,系统分析所确定的内容为今后系统设计、系统实现的构建了基础。本章节主要介绍系统的目标、系统的可行性分析和系统的需求分析,是系统设计的开始环节,系统分析的深入与否直接影响到系统的开发合理性。因此,我应该认真做好这就环节的工作。

3.2 系统目标

通过本商城系统为消费者用户提供方便、快捷、轻松愉快的购物流程。并对顾客提供售后保障,让顾客买的“省心”,用的“放心”。提高消费水平,带动公司发展和企业腾飞。

3.3 系统的可行性分析

可行性研究的主要目的是使用最小的代价在最短的时间里确定问题是否能解决,主要从以下几方面进行分析:技术、使用、操作等。可行性分析应具有以下特性:预见性、公正性、可靠性、科学性等.它的是一个项目开发必不可以的环节

技术可行性

  1. PHP是世界上最好的语言之一,具有快捷性、跨平台性强、效率高、很好的移植性和 扩展性强等特点,支持几乎当前广泛使用的主流数据库以及操作系统。是一种通用的、开源的、服务器端的脚本语言。PHP语法吸收了多种语言的精髓(C语言、Java和Perl),利于学习,使用简单,主要适用于Web开发领域。PHP支持面向过程和面向对象两种开发模式,开发人员可以根据需求文档具体分析选择相应的开发模式。

  2. Apache是当前最流行的Web服务器软件之一。它可以运行在几乎所有广泛使用的计算机平台上,拥有强大的跨平台性和较强的安全性,所以被开发人员喜爱,因此被广泛使用。

  3. 数据库服务器采用MySQL,具有以下特点,体积小、响应速度快、不用钱免费的,最重要的是开放源码这一特点,是当前比较多人用的数据库服务器。

  4. 基于B/S模式的Web数据库服务器技术已非常成熟,市面上有无数的案例可以学习,可以大胆放心的使用。

  5. HBuilder是当今流行的网页编辑工具之一。HBuilder专为前段开的打造的一款。快,是它有强大的语法提示和代码输入法、代码块等,内部集成了服务器,支持外部服务器扩展,它能大幅提升开发人员对HTML、js、css的开发效率。

综上所述:系统的开发技术是可行的,且开发人员掌握了一定的开发技术,所以系统的开发具有可行性。

使用可行性

本商城系统基于B/S的模式,只要拥有一台能打开浏览器的客户机,就可以对WEB服务器和数据库服务器进行访问和操作,界面经过精心设计,美观大方,简单易操作,用户只要会上网冲浪就能使用本商城系统。

经济可行性

商城系统是WEB网站,HBuilder是当前功能较强大的HTML开发工具,PHP技术,Apache服务器,MySQL数据库,开发速度快,而且都是免费的。所以本商城系统在开发人力、财力要求不高,具有经济可行性。

3.4 需求分析

本商城系统是典型的B/S(浏览器/服务器)结构体系软件。商城系统是总共分成两个部分,第一部分是前台购物,主要面向用户群体,该部分是经过精心设计的,用户体验良好的操作界面,可以向用户提供在线注册、浏览商品、会员的在线购物以及会员的账户管理等服务。第二部分是管理员后台管理,主要面向商城管理员。其功能主要包括:商品管理、订单管理、用户账号管理、用户反馈等。是简单易懂的图形操作界面,帮助管理员提高工作效率。

依据系统功能的实现,本商城系统可以划分为以下几个功能模块:在线购物模块、个人中心模块、用户管理模块、商品管理模块、订单管理模块等。在线购买模块包括了浏览商品,创建订单,付款等。个人中心模块,用户可以管理自已的基本资料,查看订单,管理收货地址等功能。商品管理模块包括了商品添加、商品删除等功能。订单管理模块包括待发货订单的处理,售后订单处理,订单删除等功能。本系统对稳定性、可扩展性、安全性、可操作性等性能有较高要求。稳定性----要求系统对用户的不可控操作以及恶间操作等情况有相应处理,不能因此发生异常错误,要保证系统的稳定。可扩展性----后期发展考虑,商城系统需要升级增加功能,系统可扩展方面要求较高。安全性----购物就会涉及到金额交易,安全性是重中之重,所以系统所处理的所有数据都要具体的意义,不能随便插入数据和修改数据。要对系统的数据进行相应的保护,以防止某些人的恶意操作以及计算机病毒的破坏。可操作性----因为我们面向的用户,包括管理员绝大多数都非计算机专业人员,所以可操作性一定要强,要求操作方式简单易懂,人机界面美观大方、直观一看就懂,上机培训量小,甚至无需培训,拿来即用。除此以外,还要求系统有较快的响应速度,给用户最好的体验以及减少管理人员的等待时间。

3.5 环境设备需求

1.硬件环境

系统硬件要求:

内存2GB以上,硬盘空间500GB以上。

采用本机配置(intel® Core™ I7-4700MQ CPU 2.4GHZ 8.OG DDR5内存,750G 机械硬盘)的计算机作为服务器,客户端计算机。

2.操作系统

PHP理论上可以在任何操作系统上运行,web开发PHP在Linux操作系统下最好

本机采用Windows 10作为操作系统。

3.软件环境

WampServer,WampServer是Windows +Apache +Mysql +PHP后台服务器环境的集成,有了它无需再足个的下载安装服务器环境搭建所需的软件,提高开发效率

Google Chrome,由Google(谷歌)公司开发的一款强大的网页浏览器,性能好,支持最新的HTML5 API。

HBuilder,专门为前端开发打造的编辑器,强大的语法提示和代码输入法、代码块使它被前端开发工程师所喜爱。

3.6 系统功能分析

经过对系统的仔细分析,可以将系统分为两大模块:前台用户功能模块和后台管理员管理模块,如图2.1所示。

在这里插入图片描述

图2.1 传统C/S结构

系统前台用户功能模块又可分为以下子模块:

  1. 商城首页:用户打开商城首页后,可以进行信息总览。
  2. 精彩生活:其中包括了生活息息相关的信息,如地产、家居、汽车、金融等,用户可以根据其上联系电话、地址选择响应的服务。
  3. 生活食品:生活食品中又分为中外名酒、休闲食品、奶粉、生鲜蔬果等类目,种类繁多,可以任意采购。
  4. 生活用品:生活用品中又分为小家电、厨房汇总、名表首饰、服装、运动户外等类目,包含了日常生活中的生活用品。
  5. 生活家居:生活家居中又分为厨具、家具、灯具、五金、饰品等类目,大多数家具,工具,物美价廉。
  6. 关于我们:其中有官方的最新动态,公司简介、历程、员工风采以及最新的行业资讯等,方便客户以及合作伙伴了解我们。
  7. 一键客服:向我们的客服人员寻求帮助,进行问题咨询;
  8. 在线购物:用户可以在线选购自已喜欢的商品,加入购物车,加入收藏,分享商品以及在线支付等。是整个商城系统的核心模块。
  9. 个人中心:个人中心里包含了基本资料管理,用户可以管理自己的账户,修改密码,设置钱包密码等操作。订单管理,可以追踪订单状态,查看订单详情,申请售后等服务。钱包管理,管理自已的余额,查看充值记录等。还有收货地址管理,收藏商品管理以及意见反馈中心。

在这里插入图片描述

如图3.2所示

生活一家前台功能框架

后台管理员管理模块又可分为以下子模块:

  1. 账号管理:管理用户账号信息,删除用户,修改用户信息等操作;
  2. 订单管理:管理商城系统的所有订单,对需要发货订单发货并填写物流单号,对需要进行售后的订单进行处理,同意或拒绝售后;
  3. 商品管理:可以进行商品的添加,商品的删除,商品修改等操作;
  4. 反馈管理:接受用户的建议与意见并处理用户的反馈。

如图3.3所示 生活一家前台功能框架
在这里插入图片描述

性能需求

  1. 系统处理速度快,能支持多个用户同时操作,高并发。

  2. 系统对数据计算必须精准无误

  3. 界面操作美观大方,等待响应时间少。

  4. 系统稳定性、可扩展性、安全性、可操作性有较高要求。

数据需求

根据系统的功能需求分析,可列举出如下数据信息:

  1. 管理员信息:管理用户名、权限级别和账户密码

  2. 会员注册信息:用户名、用户手机号码、用户密码,账户余额

  3. 合作商家信息:包括商家联系电话、公司名称、公司简介、公司地址、公司详情介绍、公司标题、公司经纬度等。

  4. 商品信息:包括商品原价格,商品优惠价格、商品展示图片、商品标题、商品详情介绍、商品的销量、商品的二级分类。

  5. 订单信息:包括用户手机号码、订单状态、订单创建时间、订单编号、用户收货地址、用户留言、订单总价。

  6. 订单商品信息:商品ID、商品标题、商品图片、订单编号、购买商品数量、商品价格

  7. 售后订单:申请售后的原因、申请的价格、申请售后说明、售后申请凭证、用户手机号码。

系统数据描述

通过对商城系统各方面需求的进行分析,可得出下面的数据字典。由于设计思想是相同的,仅列出部分作为参考。

1.数据字典

a.数据流条目:

数据流1

  • 名称:用户登录信息

  • 别 名:无

  • 简 述:用来识别用户身份是否合法,并记录用户的相关信息

  • 来 源:用户注册

  • 去 向:加工1“登陆校验”

  • 组 成:用户昵称+用户密码+权限等级+创建时间

数据流2

  • 名称:账号管理

  • 别 名:无

  • 简 述:用来向系统管理员提供用户管理信息

  • 来 源:数据库中的用户表、成绩表

  • 去 向:加工2“用户管理账号”

  • 组 成:用户ID+用户昵称+手机号码+密码+权限等级+账户余额+账户钱包密码

数据流3

  • 名称:商品信息

  • 别 名:无

  • 简 述:供用户浏览,采购。

  • 来 源:商城系统管理员添加

  • 去 向:加工3“管理员管理商品”

  • 组 成:商品ID+商品标题+商品内容+商品价格+商品优惠价+销量等

b.小说明(加工条目)

编 号: 1

  • 加工名称:登陆校验

  • 激发条件:用户填写完登录信息提交后

  • 输 入 流:用户登录

  • 输 出 流:注册信息

  • 加工逻辑:IF 手机号、密码、校验正确

  • THEN 登录成功,进入商城首页

  • ELSE 提示用户名或密码错误END IF

编 号:2

  • 加工名称:用户管理账号

  • 激发条件:系统管理员通过账号管理选择用户账号,

  • 输 入 流:发送查看账号信息请求

  • 输 出 流:用户账号信息

  • 加工逻辑:依据用户手机号,查看用户账号信息

编 号:3

  • 加工名称:管理员管理商品

  • 激发条件:管理员查看商品列表,选择要管理的商品

  • 输 入 流:管理员发送的查看请求

  • 输 出 流:商品详细信息

  • 加工逻辑:依据商品ID,调取数据库相应ID的商品信息给管理员查看

四、概要设计

4.1 系统设计的目标

基于Web的商城网站的设计与实现可以为消费者顾客提供周边信息的浏览与商品的采购,信息丰富,涵盖生活中衣、食、住、行。主要有如下目标:1、商品与周边的信息发布。2、用户浏览商品、加入购物车、收藏商品、支付购买商品功能。3、后台商品信息管理贡呢。4、后台订单信息管理功能。5、后台账号管理功能等

4.2 系统设计思想

“生活一家”商城网站的设计思想主要有:

  1. 系统采用Apache + MySQL + PHP设计编程,前后端交互及数据渲染使用Vue框架,基于WEB的B/S体系结构的软件。

  2. 利用先进的Web动态网站开发方案,达到充分利用现有网络资源,对传统的经济模式和产业,打破时间和空间限制,节约成本,提高效率。

  3. 商城系统应能满足消费者在线购买,消费者可以在个人中心进行订单管理,还能申请售后,充分维护了消费者的权益。达到界面美观大方、操作简单、购物方便、系统稳定安全、数据计算准确等要求。

  4. 商城系统采用原型模型,使用模块化的设计方法,便于商城系统功能的后期维护与扩张升级。

4.3 系统结构图和模块设计

4.3.1 系统结构图

在这里插入图片描述

图4.1 通“生活一家”商城购物平台总结构图

注:其它的结构图类似,由于整体的篇幅关系,在此就不再赘述。

4.3.2 模块设计

1.管理员(公司员工)模块

主要对商城系统后台商品管理,订单管理以及账号管理的实现,实现对用户(消费者)账号的管理和商城系统的维护,从内部的专有的管理员登录页中的登录。本管理员模块实现功能:会员账号管理、商品管理、发货订单管理、售后订单管理、用户意见反馈管理等。

2.用户(消费者)模块

本商城系统的核心模块,主要是消费者用户采购功能的实现,实现用户在线购物功能以及周边信息的浏览,涵盖衣、食、住、行。本用户模块主要实现的功能是:浏览商品、加入购物车、创建订单、支付购买、订单追踪、申请售后、意见反馈、账号管理等。

注:其他模块不再一一赘述。

4.4 接口设计

4.4.1 用户接口

本商城系统主要通过各种时间的绑定与注册,收集用户的操作信息,利用AJAX技术异步发送Http请求给服务器,后台校验通过后做出响应,返回操作数据,包括(检验失败,成功数据,失败数据等),界面美观大方、操作简单易懂。

4.4.2 外部接口

1.硬件方面:

商城系统通过Apache服务器,发布Web上,用户可以通过计算机中的浏览器输入url地址直接访问。

2.软件方面:

  1. Web服务器,为消费者用户提供页面浏览和交互操作。

  2. 数据库服务器用MySQL,通过SQL语句向WEB服务器提供数据支持。

  3. Google(谷歌)公司开发的Google Chrome浏览器或者美国 Mozilla 基金会的Firefox火狐浏览器为消费者用户提供访问本商城系统工具。

4.4.3 内部接口

系统后台采用PHP+Apache+MySQL设计模式,开发成本低、开发效率高。前端采用HTML5+CSS+Vue,界面通俗易懂,操作简单,拿来即用。通过web服务器接受用户传来的Http请求,调用本地的PHP、Html文件,通过PHP解析并操作数据库,得到数据,然后做出响应传回给浏览器。浏览器通过JavaScript脚本解析服务器的响应,做出相应的操作与用户交互。

4.5 数据库设计

数据库设计是建立数据库及数据库应用系统的技术,是信息系统开发和建议中的核心技术。由于数据库应用系统是非常复杂的,为了支持相关程序运行,数据库设计就会变得异常的复杂,因此最佳数据库设计是不可能一步到位,而只能是一种“反复摸索,逐步求精”的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。

4.5.1 逻辑结构设计

根据本系统的主要目标和任务、系统结构和功能需求,仔细研究系统的主要功能模块和数据需求,采用MySQL数据库设计并建立了13张数据表(由于篇幅关系,在此仅列出部分数据表):

用户会员表users:

数据表1

序号 字段名称 字段类型 大小 允许为空 小数 备注
1 id Int 10 自增编号 0 用户id
2 name varchar 30 0 用户名
3 phone varchar 11 0 手机号码
4 pwd char 16 0 密码
5 balance int 16 0 账户余额
6 purse_pwd char 16 0 钱包密码

商城管理员表admin_users:

数据表2

序号 字段名称 字段类型 大小 允许为空 小数 备注
1 id Int 4 自增编号 0 主键
2 user_name varchar 16 0 管理员用户名
3 pwd varchar 32 0 密码
4 power varchar 2 0 权限
5 create_time datetime 10 0 创建时间

精彩生活表beautity_life:

数据表4

序号 字段名称 字段类型 大小 允许为空 小数 备注
1 id int 10 自增编号 0 主键
2 category int 2 0 分类
3 address varchar 64 0 地址
4 distance int 11 0 距离
5 phone varchar 16 0 电话
6 companyName varchar 32 0 公司名称
7 shortDesc varchar 256 0 段介绍
8 commodity_id int 8 0 编号id
9 pic varchar 128 0 图片
10 title datetime 32 0 标题
11 createDate varchar 0 0 创建时间
12 log varchar 32 0 经度
13 lat varchar 32 0 纬度
14 toPhone varchar 10 0 联系方式
15 content varchar 1024 0 详情内容

商品信息表根据类目划分有三张表(现列出一张)。

商品信息表-生活食品life_food:

数据表5

序号 字段名称 字段类型 大小 允许为空 小数 备注
1 id int 4 自增编号 0 主键
2 marketPrice int 16 0 原价
3 salesPrice int 8 0 优惠价
4 sysTime datetime 0 0 更新时间
5 pic varchar 128 0 考试类型
6 title varchar 64 0 学时
7 content varchar 2550 0 课程类型
8 createDate varchar 0 0 创建时间
9 salesCount int 8 0 库存
10 category int 4 0 分类
11 commodity_id int 4 0 编号id
12 sellerCount int 8 0 销量

用户订单表user_order:

数据表6

序号 字段名称 字段类型 大小 允许为空 小数 备注
1 id int 4 自增编号 0 主键
2 phone varchar 255 0 用户手机号
3 order_status int 2 0 订单状态
4 create_time varchar 32 0 创建时间
5 address int 8 0 收货地址
6 order_code varchar 255 0 订单编号
7 liuyan varchar 255 0 用户留言
8 order_all_price decimal 10 2 订单总价

订单商品表bbs:

数据表7

序号 字段名称 字段类型 大小 允许为空 小数 备注
1 id int 8 自增编号 0 主键
2 commodity_id int 8 0 商品id
3 commodity_title varchar 255 0 商品标题
4 commodity_img varchar 255 0 商品组图
5 order_code varchar 16 0 订单编号
6 cmd_count varchar 4 0 商品数量
7 all_price decimal 10 2 订单总价
8 sales_price decimal 10 2 订单单价

4.5.2 物理结构设计

本商城系统的数据库的物理结构设计方法运用了关系模式的选择存取方法,设计表间的关系、索引等数据库表单。主要由会员用户表、商品信息表、商城管理员表、用户订单表、订单商品表组成,每个表单有若干个记录组成,而每个记录又由若干个字段组成。在建立这些表时,手动设置字段允许的最大值,系统默认从0开始,构成数据段,以存储此表可能的数据,对不同行(记录)中各列(字段)的存储顺序与定义表时所排列的顺序基本相同。为了加快数据表的访问速度,大多数据表都是按照自增的主键建立的索引字段,并通过主键建立表与表之间的联系,来提高本商城系统的数据吞吐效率。

4.6 系统出错处理设计

4.6.1 出错信息

系统可能出错情况:

  • 用户输入异常数据的错误,致使后台逻辑出现错误;

  • 由于网络不稳定等外部原因,导致数据传输中断,无法进行页面访问,页面交互操作;

  • 某些不法分子利用网络技术手段攻击服务器,致使服务器或数据库服务器崩溃。

4.6.2 出错处理措施

针对以上出错情况,可采取以下出错处理措施

  • 情况1:前端做严格的表单校验,确保传输到后台的数据是正常的,无缺失的。

  • 情况2:检查本地网络连接,尝试进行疑难解答、修复网络操作。若仍然无法恢复网络,应向当地的网络运营商汇报,及时检查、修复;

  • 情况3:提前做好保护措施,防止黑客攻击,若无法抵御攻击,应及时报警请求网警帮助。

综上分析:为保证商城系统正常运行,减少系统出现错识,服务器必须选择较可靠、稳定的服务器机种,推荐Linux服务器,并且需要准备一台备用服务器,保证系统运行出错时能及时更换调整,减少损失;安装备电源以防止停电或电压不稳造成的服务器无法访问或数据丢失的损失。MySQL数据库要开起binary log功能,binlog日志主要用于记录所有发生变动的数据,它将语句以“事件”的形式保存,binlog可以描述数据更改。有了可以描述数据更改的binlog日志,我们就可以用于利用它进行实时备份。

五、详细设计

5.1 引言

详细设计其实就是对概要设计的一个细化,为每个模块进行详细的算法设计。用一些图形、表格、语言等工具把各个模块处理过程的详细算法表达出来,为模块内的数据结构进行详细设计。对于需求分析、概要设计中确定的概念性的数据类型进行明确的定义,为数据结构进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。

5.2 数据库表的设计

根据系统对数据的分析和需要,用数据库管理工具Navicat Premium创建数据库family,然后用基于PHP的SQL语言,在MySQL的查询分析器中设计数据表。部分表的代码如下:

用户表:

CREATE TABLE `users` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id编号',
  `name` varchar(30) CHARACTER SET utf8 NOT NULL COMMENT '用户名',
  `phone` varchar(11) NOT NULL COMMENT '手机号',
  `pwd` char(64) NOT NULL COMMENT '密码',
  `balance` int(16) NOT NULL,
  `purse_pwd` char(64) NOT NULL COMMENT '钱包密码',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=latin1

生活食品表

CREATE TABLE `life_food` (
  `id` int(16) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id编号',
  `marketPrice` int(8) NOT NULL,
  `salesPrice` int(8) NOT NULL,
  `sysTime` datetime NOT NULL,
  `pic` varchar(256) NOT NULL,
  `title` varchar(64) CHARACTER SET utf8 NOT NULL,
  `content` varchar(2560) CHARACTER SET utf8 NOT NULL,
  `createDate` datetime NOT NULL,
  `salesCount` int(8) NOT NULL,
  `category` int(4) NOT NULL,
  `commodity_id` int(4) NOT NULL,
  `sellerCount` int(8) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1494001759 DEFAULT CHARSET=latin1

订单表:

CREATE TABLE `user_order` (
  `id` int(8) NOT NULL AUTO_INCREMENT,
  `phone` varchar(255) NOT NULL,
  `order_status` int(2) NOT NULL,
  `create_time` varchar(32) NOT NULL,
  `address` int(8) NOT NULL,
  `order_code` varchar(255) CHARACTER SET utf8 NOT NULL,
  `liuyan` varchar(255) CHARACTER SET utf8 NOT NULL,
  `order_all_price` decimal(10,2) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=72 DEFAULT CHARSET=latin1

用户收货地址表

CREATE TABLE `user_address` (
  `id` int(4) NOT NULL AUTO_INCREMENT,
  `phone` varchar(11) NOT NULL,
  `username` varchar(64) CHARACTER SET utf8 NOT NULL,
  `address` varchar(32) CHARACTER SET utf8 NOT NULL,
  `detailaddrass` varchar(255) CHARACTER SET utf8 NOT NULL,
  `default` int(2) NOT NULL,
  `addressname` varchar(32) CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=54 DEFAULT CHARSET=latin1

5.3 模块算法设计

公共模块设计(部分)

为了更好地提高代码的复用性,开发本系统商城前,我对一些公用模块代码进行提取,封装,如数据库操作通用模块、Html通用头部、脚部、通用CSS base样式文件、公用接口封装等。

1.数据库操作通用模块mysql.class.php

2.要实现商城系统的用户的交互,数据库的连接是必不可少的,因此需要对数据库常用的操作(增、删、改、查)进行封装,方便对数据库进行链接与操作,具体实现方法写入mysql.class.php。当PHP脚本需要对数据库进行连接操作时,只需要在该PHP脚本头部通过<-require_once ‘…/mysql.class.php’;->语句引用公用的mysql.class.php文件即可。由于篇幅关系,部分代码如下:

//MySQL类的构函数
public function __construct ($hostname_or_conf,$username,$password,$database, $port = '3306',$char = 'utf8')//设置默认的数据库字符编码与端口
  {
   if(is_array($hostname_or_conf))//判断实例化MySQL对象时,参数是不是数组
    {
      $this->db_mysql_hostname = $hostname_or_conf['hostname'];//主机地址
      $this->db_mysql_username = $hostname_or_conf['username'];//用户名
      $this->db_mysql_password = $hostname_or_conf['password'];//密码
      $this->db_mysql_database = $hostname_or_conf['database'];//链接的数据库
      $this->db_mysql_port     = isset($hostname_or_conf['port'])?$hostname_or_conf['port']:'3306';//端口
      $this->db_mysql_charset  = isset($hostname_or_conf['charset'])?$hostname_or_conf['charset']:'utf8';
      
    }elseif(!empty($hostname_or_conf)||!empty($username)||!empty($password)||!empty($database))//不是数组则对其一一赋值
    {
       $this->db_mysql_hostname = $hostname_or_conf;
       $this->db_mysql_username = $username;
       $this->db_mysql_password = $password;
       $this->db_mysql_database = $database;
       $this->db_mysql_port     = $port;
       $this->db_mysql_charset  = $char;
    }
    else
    {
      die('configuration error.');
    }
    $this->connect();
  }

下面代码是数据库的MySQL类的添加操作方法,实例化MySQL类的对象 m y s q l 后,通过 mysql后,通过 mysql后,通过mysql->data(array(‘name’=>‘邓福’,‘pwd’=>$pwd))->table(‘table’)->add();可进行添加插入操作。公用函数代码如下:


public function select()
{
$select_sql = 'select ';
$fields = isset($this->query_list['fields'])?$this->query_list['fields']:'*';
$select_sql .= $fields;
$select_sql .= ' from `'.$this->query_list['table'].'` ';
//判断各sql子句是否存在
isset($this->query_list['join'])?($select_sql.=$this->query_list['join']):'';
isset($this->query_list['where'])?($select_sql.=' where '.$this->query_list['where']):'';
isset($this->query_list['group'])?($select_sql.=' group by'.$this->query_list['group']):'';
isset($this->query_list['having'])?($select_sql.=' mysql having '.$this->query_list['having']):'';
isset($this->query_list['order'])?($select_sql.=' order by '.$this->query_list['order']):'';
isset($this->query_list['limit'])?($select_sql.=' '.$this->query_list['limit']):'';

return $this->query($select_sql);
}

系统CSS样式表文件css.css。关键代码如下:

html,body {margin:0; padding:0; font:12px helvetica,arial,"Microsoft Yahei";}//设置html,body签内外边句为0,并对全局字体初始化为12px helvetica,arial,"Microsoft Yahei
div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,blockquote,p{padding:0; margin:0;}
table,td,tr,th{font-size:10px;}
a{text-decoration: none;}//去除a标签的下划线
ol,ul {list-style:none;}//初始化ol ul li标签的列表项标记的类型
li{list-style-type:none;}
img{border:0;display: block;width:100%;height: 100%;}
h1,h2,h3,h4,h5,h6{font-size:inherit; font-weight:normal;}//初始化个标题标签的样式
address,cite,code,em,th,i{font-weight:normal; font-style:normal;}
.clearfix{zoom:1;}//为元素添加.clearfix类可以清楚浮动
.clearfix:after{display:block; overflow:hidden; clear:both; height:0; visibility:hidden; content:".";}

在web网页写入以下语句引用通用base.css样式表文件:

<link  type=”text/css”  href=”base.css” rel=”stylesheet”>

3.Html通用的头部与脚部public_header.php

整个商城系统的web页面中,都回包含头部与脚部,所以对其进行提取是有必要的,利于加强代码的复用以及便于开发人员维护。通过include ‘…/public/public_header.php’;引入。

部分代码如下:

<div class="headerNavInner">//通用的头部Nav导航
	<ul>
		<li><a class="active_nav" href="../index/index.php">首页</a></li>
		<li><a href="../nav_contain/beautifulLife.php">精彩生活</a></li>
		<li><a href="../nav_contain/lifeFood.php">生活食品</a></li>
		<li><a href="../nav_contain/lifeArctiles.php">生活用品</a></li>
		<li><a href="../nav_contain/lifeFurniture.php">生活家居</a></li>
		<li><a href="###">会员杂锦</a></li>
		<li><a href="../nav_contain/aboutOur.php">关于我们</a></li>
	</ul>
  </div>
</div>

验证数字的代码如下:

其它系统模块设计(部分)

1.用户登录、注册、找回密码模块

登录流程介绍:用户通过login.html登陆页面,输入用户手机号、用户密码,经过后台验不通过,则提示“手机号或密码错误!”。反之则提示 “登陆成功”并跳转首页,方便用户购买商品。具体流程图如图5.1所示:
在这里插入图片描述

图5.1 用户登录注册流程图

截取部分代码如下:

1.用户登录

<?php
	header("content-type:text/html;charset=utf-8");

	require_once '../mysql.class.php';
	
	$mysql = new MySQL('localhost','root','','family');//实例化数据库操作类
	$arr = $_POST;//取得用户POST请求的数据
	$phone=$arr['mobile_phone'];//用户手机号曲
	$pwd=md5($arr['pwd']);//用户密码
	$sql="SELECT * FROM users WHERE phone ='$phone' and pwd ='$pwd'";//查询数据库
	$result = $mysql->query($sql);
	if(!empty($result)){//校验通过,开启SESSION记录用户信息
		session_start();
		$_SESSION=[];
		$_SESSION['username']=$result[0]['name'];
		$_SESSION['phone']=$result[0]['phone'];
 		$res=[//反回登录成功数据
			'msg'=>'登录成功',
			'code'=>1,
			'data'=>$result
		];
		echo json_encode($res);
	}else{//反回登录失败数据
		$res=[
				'msg'=>'手机号或密码错误',
				'code'=>0
			];
			echo json_encode($res);
	}
?>	

2.用户在线购物

购物流程介绍:用户进入商品列表页查看商品,选择商品数量,加入购物车或立即购买,立即购买会跳转至创建订单页,加入购物车可以继续选购其它商品,用户创建订单后会跳转至支付页进行支付,订单状态为待发货状态,可以在个人中心-我的订单处查看。

在这里插入图片描述

图5.2 用户在线购物流程图

在线购物部分代码如下:

<?php
	header("content-type:text/html;charset=utf-8");
	require_once '../mysql.class.php';
	session_start();//开启SESSION
	$_SESSION['shoppingCar']=[];//从SESSION获取购物车数据
	$mysql = new MySQL('localhost','root','','family');
	$data=$_POST;//获取用户POST请求的数据
	$phone=$_SESSION['phone'];//校验用户是否登录
	$order_statue=1;//订单装态,刚创建订单为待支付状态
	$liuyan=$data['liuyan'];//买家留言

3.商品管理

商品管理流程介绍:商城管理员通过专有的管理员登录页登录后,跳转至后天管理中心,商品管理-添加商品,管理员通过HTML5 FormDate对象提交商品数据,后台接受数据后校验商品并插入。商品管理-修改商品,管理员点击修改商品,后台传回商品数据,管理员修改完后再提交。删除商品数据,管理员点击删除商品,确认后,提交请求给后端,后端响应并删除数据库中的商品。流程如图5.3所示:

在这里插入图片描述

图5.3 商品管理流程图

节选部分代码如下:

添加商品

function addCommodity(){
		global $mysql;//获取商品信息
		$name = iconv('utf-8','gb2312',$_FILES['pic']["name"]);
		$arr=explode('.', basename($name));
		$hz=array_pop($arr);
		$name3=date('YmdHis').rand(100,999).'.'.$hz;
		$name1=$_SERVER['HTTP_ORIGIN'].'/php/upload/'.$name3;
		$name='../upload/'.$name3;
		$tmp = $_FILES['pic']["tmp_name"];//获取商品图片
		$content_pic='';
		$num=count($_FILES['contents']['name']);
		for($i=0;$i<$num;$i++){//将图片保存到服务器本地,并向数据库插入数据
			$content_name = iconv('utf-8','gb2312',$_FILES['contents']["name"][$i]);
			$content_arr=explode('.', basename($content_name));
			$content_hz=array_pop($content_arr);
			$content_name3=date('YmdHis').rand(100,999).'.'.$content_hz;
			$content_name1=$_SERVER['HTTP_ORIGIN'].'/php/upload/'.$content_name3;
			$content_pic.='<div style="text-align: center;"><img alt="" src="'.$content_name1.'" /></div>';
			$content_name='../upload/'.$content_name3;
			$content_tmp = $_FILES['contents']["tmp_name"][$i];
			move_uploaded_file($content_tmp,$content_name);
		}

六、平台测试

6.1 测试概述

6.1.1 目的

依据需求分析、概要设计和详细设计说明,设计并编写测试用例,对系统进行全方位的综合测试,目的:

  1. 尽可能的发现并且改正被测试软件中的错误,减少Bug,提高软件的可靠性。

  2. 检验开发的软件是否可以真正上线,软件能否上线使用是要经过严格的测试来验证的,没有经过严格测试的软件是不能上线使用的。

  3. 测试可以提前发现开发过程中未发现的Bug,通过测试,可以在早期阶段就发现这些错误,避免了上线后被用户发现错误,这样会造成用户流失

6.1.2 测试人员

开发人员、用户(消费者与商城后台管理人员)

6.2 测试计划

6.2.1 测试环境

依据B/S体系结构软件的具有跨平台、易于测试与维护等特点,集服务器与客户机于一体,均用本计算机机作为测试环境。

测试软件:

Chrom浏览器,Firfox火狐浏览器,IE10浏览器,360浏览器

6.2.2 测试方案

测试方案的制定是测试开发的软件的核心技术问题,一份好的测试方案,能极大的提高测试用例的可执行性。为了提高的效率并且降低测试的开销,本测试方案选择用黑盒法来设计基本的测试方案,最后再由白盒法来弥补黑盒法的不足,从而保证测试的高效率低成本。

6.2.3 测试项目

  1. 主要检测被测软件的实现功能呢否满足需求文档中的描述;

  2. 验证需求规格说明书中的功能是否100%覆盖;

  3. 做异常测试,输入异常数据检验系统的稳定性,错误提示是否合理;

  4. 根据需求说明检查系统是否达到安全性要求;

  5. 数据库中所记录的密码是否经过严格加密;

6.2.4 测试用例(部分)

基于测试的通用原则,本商城系统用黑盒测试技术中的划分等价类方案设计测试用例:

1.划分等价类

输入条件 合理等价类 不合理等价类
手机号码(phong) 1.由11位数字组成 2. 符串含有其它非数字字符组成
用户名(user_name) 3.非空字符组成 4.含有空字符、特殊字符组成
密码(pwd) 5.由数字加字母组成 6.字符串含空字符、特殊字符组成
钱包密码(puser_pwd) 7.由数字加字母组成 8.字符串含空字符、特殊字符组成

2.不合理类测试用例

测试数据 期望结果 覆盖范围
6849qwr16a87(手机号码) 前端校验不通过 2
替2!//1*&@(user_name) 前端校验不通过 4
Sdf sewo@(pwd) 前端校验不通过 6
#$%^ awg594(puser_pwd) 前端校验不通过 8

3.合理类测试用例

测试数据 期望结果 覆盖范围
18813973881(手机号码) 输入有效 1
豆腐强(学时) 输入有效 3
Woblasiag13(pwd) 输入有效 5
Woblasiag13(puser_pwd) 输入有效 7

6.3 测试分析

6.3.1 测试项目执行情况分析

  1. 系统模块测试:采用黑盒的测试技术,分别对系统各个模块进行全方面测试,系统返回的执行情况和出错数据(详细情况见测试用例)

  2. 服务器测试:服务器能支持多用户同时访问,WEB服务器和数据库服务器都能稳定、高效的运行。

  3. 模块块接口测试:白盒测试结果,各模块接口间变量和方法间数据传递准确无误

6.3.2 系统评价

性能评价:系统界面美观大方,易操作,功能完善,响应速度快,安全性强。

功能评价:系统的功能已经基本能实现和满足消费者的在线购物与商城管理员的后强管理,易操作相应速度快。

6.3.3 系统的不足

网络数据传输的保密性、安全性以及数据库的安全性还是存在一定的缺陷。有可能会由于传输过程中网络不稳定导致数据的丢失造成系统报错。

6.4 测试结论

本商城系统基本实现了消费者用户在线购物功能、订单管理追踪功能以及商城管理员的后台商品管理、订单管理功能,各方面的功能完善,能稳定高效的运行、界面美观、操作简单,用户体验度高,但在网络传输保密性、安全性方面设计不足,有待于加强。

七、系统运行

7.1 引言

编写本说明书的目的是充分叙述该系统能实现的功能,以使用户了解该系统的运行配置和操作应用,以及向计算机操作人员提供该软件系统及其运行环境的一份说明。

7.2 运行环境

根据本商城系统的是B/S体系结构软件,它具有跨平台、易于测试与维护等特点,集服务器与客户机于一体,均用本计算机机作为测试环境。运行的环境操作系统采用Windows 10,使用PHP+Apache+MySQL的集成软件WampServer配置服务器环境。在局域网内发布网站,运行环境如下:

  • 集成环境:WampServer
  • 服务器主机地址(IP):127.0.0.2
  • 服务器端口:80
  • 当前域名:http://127.0.0.2/index.php

7.3 系统配置

7.3.1 运行WEB服务器的设置

Apache服务器的配置:

因为Apache默认主机地址是localhost,为了不与其他项目冲突,需要进行多站点配置。

1.编辑D:\wamp\bin\apache\apache2.4.9\conf 下的httpd.conf ,

LoadModule php5_module "d:/wamp/bin/php/php5.5.12/php5apache2_4.dll"
PHPIniDir d:/wamp/bin/php/php5.5.12
Include conf/extra/httpd-vhosts.conf 

如果这3句前有#号,去掉#注释。

2.编辑D:\wamp\bin\apache\apache2.4.9\conf\extra 下的httpd-vhosts.conf

<VirtualHost 127.0.0.2:80>//域名端口
    DocumentRoot "e:/PhpProject/"//项目路径
    ServerName localhost
     <Directory "e:/PhpProject/">//项目路径
        Options Indexes FollowSymLinks
        AllowOverride all
        Require all granted
    </Directory>
</VirtualHost>

3.编辑C:\Windows\System32\drivers\etc 下的hosts文件

毕竟我们使用用的站点是在Web服务器上运行的,还得将服务名告诉机器 ,这最后一步就是在在本文件最后输入127.0.0.2

7.3.2 运行数据库服务器的设置

  1. 因为WampServer已经集成了MySQL,所以无需下载MySQL,运行WampServer软件,然后打开Navicat Premium数据库管理工具,点击右上解的链接,选择MySQL数据库。最后输入主机名+端口+加用户名+密码。最后单击确定。至此,数据库已成功建立。

  2. 在PHP文件中连接数据库的程序语句为 @mysql_connect( l o c a l h o s t , localhost, localhost,root,$pwd) or die(“数据库连接失败”);mysql_select_db(“php_h1”); mysql_query(“set names utf8”);

若数据库用户名、密码或数据库名有改动,只需要修改相应的部分即可。

7.4 页面操作及关键技术说明

首先,运行WampServer软件开启服务器,右下角的图标变绿时,就说明开启成功

进入商城首页(浏览器上地址栏输入),首页有图片轮播功能、购物车入口,一键客服功能,有名模块商品的展示以及名模块的入口(精彩生活、生活食品、生活用品等),右上角有用户注册、登录入口

如图7.1所示:

图7.1 生活一家商城首页

还没注册的有课可以浏览所有的商品信息,如果未经注册而进行一些会员操作时,将弹出提示框并跳转到相关页面:

点击右上角的“注册”链接,将会跳转支用户注册页。注册需要填写用户名、手机号码、用户密码,点击获取验证码将后发送短信验证码到填写的手机上,输入接收到的短信验证码,点击注册按钮完成注册,若后天校验通过将会提示注册成功并跳转到首页,继续选购商品。如图7.2所示:

图7.2 用户注册页面

输入用户名和密码,登陆成功进入系统,如图7.3所示下:

图7.3 用户登录成功

在首页用户可以点击展示的商品,将会跳转至商品详情页。在此可以查看商品的详细信息。

如图7.4所示:

图7.4 商品详情页

选择采购数量后,点击加入购物车,商品自动加入购物车中,下方还有收藏按钮,点击可以收藏自已喜爱的商品。

点击右上角的购物车按钮,可以进入购物车页,查看够车内的商品,并可以选择想要购买的商品,购买的数量,然后进入创建订单页。支持全选反选功能。如图7.6所示:

图7.6 购物车

点击立即够买进入创建订单页,填写或选择收货地址,输入留言即可创建订单。如图7.7所示:

图7.7 创建订单

订单创建成功后,跳转到支付页完成支付。如图7.8、7.9所示:

图7.8 支付页

图7.9 支付成功页

点击右上角的“我的账号”可以进入个人中心,查看个人信息,查看订单,查看余额,查看收藏商品等,如图7.10所示:

图7.10 个人中心

个人中心右侧导航可以进入响应的个人模块管理页,如点击基本资料,管理个人基本信息其中可以修改用户名、联系方式、修改密码、修改或设置钱包密码如图7.11、7.12、7.13、7.14所示:

图7.11 基本资料管理

图7.12 修改密码

图7.13 设置钱包密码

图7.14 修改钱包密码

单击右侧的“我的订单”进入订单管理。可以查看订单,并且可以按订单状态查看订单。在待发货订单中,我们可以看在刚刚创建的订单,以及购买的商品的信息。如图7.15所示

图7.15 待发货订单

当商品货后,用户确认收到货物后若发现货不对版,商品损坏等情况,可以在订单详情中,点击申请售后按钮,申请售后维权。如图7.16所示。

图7.16 申请售后

申请售后需要填写退款因、输入退款金额、退款说明以及退款凭证等信息,方便商家确认信息并退款。如图7.17所示

图7.17 填写售后信息

用户还可以收藏商品,收货地址,以及反馈意见等,由于篇幅关系在此就不一一赘述。

商城管理员通过专有的管理员登录界面登录管理员管理中心,这个业面是专有的,不对外开放的。如图7.18所示:

图7.18 管理员登录界面

管理员可以在管理中心对用户的账号进行管理,可以对用户的账号进行删除、修改操作如图7.19、7.20所示:

图7.19 用户账号管理界面

图7.20 用户账号管理界面

管理员点击右侧导航中的订单管理,进入订单管理界面,对用户的所有订单进行管理。在订单管理界面中可以查看待付款订单,待发货订单,待收货订单,已完成订单,退货/售后订单。管理员可以对订单进行删除,可以对待发货订单的进行发货处理,以及对售后订单同意售后,或拒绝售后处理。如图7.21、7.22、7.23所示:

图7.21 用户订单管理界面

点击商品管理进入商品管理面,在其中可以查看商城系统的所有商品。在商品管理页中,可以对商品进行添加、删除、修改等操作。如图7.22所示:

图7.22 商品管理页面

图7.25 修改商品页

管理员还可以进行商品添加、查看用户反馈等操作,由于篇幅关系在此就不一一赘述。

♻️ 资源

在这里插入图片描述

大小: 67.7MB
➡️ 资源下载:https://download.csdn.net/download/s1t16/87639091
注:如当前文章或代码侵犯了您的权益,请私信作者删除!