基于PHP的手机商城网站的设计与实现-毕业设计+任务书+开题报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

任务书计算机科学与技术
开题报告
计算机科学与技术
基于php的手机商城的设计与实现
本科毕业设计
(20 届)
基于PHP的手机商城网站的设计与实现
摘要
近年来,电子商务领域的发展日新月异,每天都有无数家的电子商务平台上线或关闭。

其中电子商务平台的开发共有三种主流的技术手段,分别是PHP、JA V A和.NET 技术。

由于PHP语言的跨平台性,支持多种数据库,操作简单轻便。

因此,本手机商城平台以PHP中的Laravel框架作为主要开发手段,适用性极广。

其中大量运用Ajax 进行数据交互,可以极大减少页面的刷新次数。

运用Mysql数据库进行数据存储,以提升数据读写速度。

开发过程中,通过对代码的优化和对数据处理上的简化,可以极大的提升用户加载速度,提升访问流畅性。

同时,对图片进行了统一处理,减少服务器端的存储压力。

关键词:PHP;Laravel;手机商城
Abstract
In recent years, the rapid development of e-commerce field, every day there are countless e-commerce platform on-line or closed. Among them, the development of e-commerce platform, there are three mainstream technology means, namely PHP, JA V A technology. Because of the cross platform of PHP language, it supports many kinds of database, and it is easy to operate. Therefore, the mobile mall platform takes the Laravel framework in PHP as the main development means, and the applicability is very wide. A large number of Ajax applications for data interaction, you can greatly reduce the number of page refresh. Mysql database is used to store data so as to improve data reading and writing speed. In the development process, through the optimization of the code and the simplification of data processing, it can greatly enhance the user's loading speed and improve the access fluency. At the same time, the picture has been processed uniformly to reduce the storage pressure on the server side.
Key words: PHP; Laravel; mobile mall
目录
摘要 (VII)
Abstract (VIII)
第1章绪论 (1)
1.1 背景及意义 (1)
1.2 国内外发展现状 (1)
第2章需求分析 (2)
2.1 可行性分析 (2)
2.2 功能需求 (2)
2.3 环境需求 (3)
第3章应用设计 (4)
3.1 后台管理系统 (4)
3.2 前台用户系统 (5)
3.3 数据库设计 (6)
第4章详细设计与实现 (8)
4.1 后台管理系统设计 (8)
4.2 前台用户系统设计 (11)
第5章系统测试 (15)
5.1 测试目的 (15)
5.2 测试特性 (15)
5.3 测试方法 (15)
5.4 测试用例 (16)
结论 (18)
参考文献 (19)
附录核心源代码 (20)
致谢 (26)
绥化学院2017届本科生毕业设计
第1章绪论
1.1 背景及意义
伴随着互联网购物环境的不断变化与消费者观念的转变,各种类型的电子商务交易模式在居民日常生活中起到越来越重要的作用[1]。

特别是近几年,“网购”这一概念渐渐深入人心,成为老少皆知的一种新型销售方式,各式各样的电子商务平台出现在网络上。

同时,各电子商务平台的用户访问量也处于一个较高的水平线,以2016年的“双十一”购物节为例,淘宝的总交易额为1207亿,产生近2亿单订单。

在带来巨大商业利润的同时,短时间内上亿的访问量也给网站服务器带来了巨大的压力,以一次下单操作最快速的操作至少需要访问3次页面来计算,平均每秒的访问次数达到了9739.6次,高压力下运作的服务器如果需要响应复杂的代码来为用户提供数据显示,势必不能快速响应用户的访问请求,用户体验度较差。

鉴于以上情况,一款基于PHP开发的手机电子商务平台——“HAO”商城致力于可以快速响应用户请求,简单快捷的为用户提供一个挑选购买手机的电子商务平台。

用户可以快速地进行网页浏览,网站中的布局简单整洁,展示信息尽力避免冗余的情况发生,力求让用户在最短的时间完成自己最想完成的操作。

1.2 国内外发展现状
国内的电商平台以淘宝、京东等平台为主,现在基本上已经达到了全国范围覆盖,销售范围以国内为主,不过货品采购范围在逐步上升至全球化。

同时,各大品牌也都有自己的网络店铺,进行电商交易,不过销售范围不及大型电商平台。

国内的发展趋势趋向于更亲民,一点点的开始通过云计算进行数据共享,同时慢慢走向国际。

国外的电商平台起步较早,现在基本上已经具备了成体系的规模。

以美国为例,亚马逊的成功可以说是电商界的典范,从单类型销售到多类型销售,过渡到推出个人喜欢的设计界面、推出各种特色功能,甚至是提供一些实体店的信息。

发展到现在开始开发app、通过云计算使得用户的偏好可以在多家电商平台进行数据共享,使之更方便用户的使用。

商品的销售和采购范围整体上趋于全球化,同时在不断的压低价格,通过降低商家成本来控制电商平台的价格。

第2章需求分析
2.1 可行性分析
现在,各大手机厂商都会在官网上推出购买功能,来为想要购买本品牌手机的用户提供方便服务,不过这种方便只是对于确定要买对应品牌的手机的用户而言。

事实上,很多人在决定买那个手机的时候都会进行产品的比对,同时打开多个网站所占用的网络带宽虽然对现在的宽带速度来说并不多,但是加载时依旧避免不了延时的产生。

与此同时,不同网站间的注册方式大不相同,尽管现在都趋于直接通过手机号注册,但是难免会有用户面临更换手机号之后无法登录的问题。

同时,不同网站间的密码规则不尽相同,对于记忆密码也会给用户带来很大的负担。

所以,一款集合了多种品牌手机的电子商务平台的出现,会很好的帮助用户解决这些问题,哪怕用户不再本网站进行购买,也可以利用本网站的信息来更好的进行挑选,进行本网站的设计和开发是可行的。

2.2 功能需求
1)后台管理系统需要实现具有管理员权限用户对整个网站平台的管理功能,主要体现在对用户的权限管理、对商品的管理等。

整个系统具有一定的保密性,不允许普通用户进行访问。

该系统至少应包含:前台用户管理、后台用户管理、商品类别管理、商品信息管理、订单管理,这五大基本功能模块,以满足管理员对网站的管理需求,可以对网站的信息进行修改。

此外,还可以有延伸功能,例如可以加入首页轮播图的管理、网站的开关功能等,可按实际情况酌情添加。

同时,由于存在超级管理员、管理员、客服人员三种不同可以登录后台管理系统的身份,所以对用户信息进行修改时,需要对权限进行判定,避免低权限人员对高权限人员进行错误修改和错误操作。

2)前台用户使用系统则是普通用户访问的部分,需要有首页、列表页、详情页等,让用户可以完成注册/登录、购买等功能。

此系统应满足用户的最基本需求,应至少由
首页、列表页、详情页、购物车、订单页、注册/登录这六大功能模块组成,延伸功能包括个人中心、积分商品等功能。

2.3 环境需求
本次开发是开发一款B/S结构的网站,即浏览器为客户端的网站结构,适用性广泛。

操作系统:Windows7;
开发平台:Xampp;
开发语言:PHP 7.0.1、HTML5、CSS3、Javascript;
后台数据:Mysql;
服务器端:Apache;
客户端:兼容所有PC平台浏览器。

主要开发工具介绍:
1、PHP 7.0.1
PHP 是一种跨平台的服务器端的嵌入式脚本语言, 它大量地借用C,Java 和Perl 语言的语法,并耦合PHP 自己的特性,使WEB 开发者快速地写出动态生成页面[2]。

2、HTML5
HTML(Hyper Text Mark-up Language)即超文本标记语言,是目前网络上应用最为广泛的规范语言。

它是通过标记符号对文字、图形、动画、声音、链接等这些网页中的内容进行标记,进行页面的排版布局的规范或标准[3]。

3、Mysql
Mysql具有小巧、免费、开源、高效等优点,与PHP一样属于一种开放源码的软件,对于权限访问、建立、删除等一系列程序都具有相当的支持性,能够对多种平台和多线程运行方式提供一定的支持性[4]。

第3章应用设计
3.1 后台管理系统
后台管理系统力求简约化设计,整体流程清晰,操作度不应过高。

由前台用户管理、后台用户管理、商品类别管理、商品信息管理、订单管理等模块组成。

后台管理系统只可由管理员用户登录并进行对应权限的操作。

整体流程如图3—1。

图3—1 后台管理系统流程图
整体操作流程说明:
1)必须先进行登录操作,如果使用账号非管理员账号则会被禁止登录;
2)在左侧选项卡选择想要进行管理操作的模块进入;
3)进行对应的增、删、改、查操作,但是有一些特殊操作(如:更改其他管理员权限)会有一次权限判断,如果权限不够,会拒绝操作;
4)完成所有操作后,可进行退出操作或直接关闭浏览器结束整体流程。

3.2 前台用户系统
前台用户使用系统是平时展现给用户的系统,各页面间如果有关联关系应该可以进行比较直接的跳转,以便用户的使用。

主要页面构成有:首页、列表页、详情页、登录、注册、购物车、订单页等。

页面关系如图3—2。

图3—2 用户使用系统页面链接图
整体浏览流程说明:用户输入网址默认进入到首页,在首页可找到和其他任何页面的链接,可以直接选择登录/注册,也可以先进行商品浏览。

商品浏览可以直接在热销商品的展示栏中选择对应商品进入详情页,也可以先进入列表页进行所有商品的浏览后,选择对应商品进入详情页。

进入详情页后可以调整所选商品的型号参数,之后会跳转入订单页,在这一步跳转中如果没有登录的用户会自动跳转至登录页面。

3.3 数据库设计
3.3.1 数据库设计理念
数据表的设计应该依功能要求而定,不同的模块对数据表的字段数量要求不同,甚至一个模块需要二张以上的表通过外键进行联合索引进行操作。

同时要考虑前后台对应功能模块对表的不同使用情况,以此来对保密性不同的数据进行分表存储。

本次开发由用户模块、商品模块、订单模块三大主要模块的数据表为主。

3.3.2 各模块数据表组成
1)用户模块
本模块主要存储用户信息,让管理员可以对用户进行管理,但是考虑到数据安全性,所以将前后台用户分开进行保存。

模块包含2张数据表:前台用户信息表(webuser)、后台用户信息表(adminuser)。

表结构如表3—1所示。

表3—1 后台用户信息表
字段名意义数据类型约束备注Id 用户id Int 主键、非空、自增
User 账户Varchar 非空
Pass 密码Varchar 非空
Name 用户名Varchar 非空
Identity 身份级别Int 非空1:客服人员2:普通管理员3:超级管理员
Status 状态Int 非空1:启用0:禁用
Time 添加时间Varchar
2)商品模块
本模块主要存储商品信息,由于商品的信息比较复杂,所以,需要的字段数量较多,但是出于对数据的保密性和数据表的稳定性考虑,会利用多张表来进行存储,各表间通过外键连接。

模块包含5张数据表:商品类别表(type)、商品信息表(goods)、商品详情表(version)、介绍信息图表(intro)、缩略图信息表(pics)。

表结构如表3—2
所示。

表3—2 商品详情表(version)
字段名意义数据类型约束备注Id id Int 主键、非空、自增
Gid Goods表id Varchar 非空、外键
Version 商品版本号Varchar 非空
Price 商品单价Varchar 非空
Num 库存量Int 非空
Sale 销售量Int 非空
Color 颜色属性Varchar
Size 规格属性Varchar
Remark 备注信息Varchar
3)订单模块
本模块主要存储订单信息,需要体现购买的商品名称、商品数量等信息。

由于在此操作中会只可以购买一种商品,故只需要一张数据表就可以满足此模块的功能需求。

模块包含1张数据表:订单信息表(orders)。

表结构如表3—3所示。

表3—3 订单信息表(orders)
字段名意义数据类型约束备注Id 订单id Int 主键、非空、自增
Uid 用户表id Int 非空
Version 版本表version Varchar 非空
Num 购买量Int 非空
People 联系人Varchar 非空
Address 收货地址Varchar 非空
Phone 联系方式Varchar 非空
Total 订单总价Varchar 非空
Status 状态Int 非空1:未发货2:已发货3:已收货4:已完成5:无效订单
第4章详细设计与实现
4.1 后台管理系统设计
4.1.1 前台用户管理
通过对前台用户信息表(webuser)的操作完成前台用户查看、限制登录功能。

操作页面如图4—1所示。

图4—1 前台用户管理页面
本页面通过点击状态单元格内容即可完成对前台用户的禁用和解禁功能,管理操作简易,无页面跳转的情况发生。

整个页面通过Javascrisp和Ajax的运用实现无整体页面刷新,只更新几个文字就可以很直观的体现管理操作。

4.1.2 后台用户管理
通过对后台用户信息表(adminuser)的操作完成后台用户的添加、修改、查看、删除、禁用功能。

操作页面如图4—2和图4—3所示。

图4—2 后台用户添加页面
图4—3 后台用户修改功能
后台用户管理因涉及到添加管理员用户和对管理员用户的整体管理,所以有独立的添加页面,但是可以通过bootstrap的模态框将修改页面整合到浏览页面中,同时将删除操作直接体现在浏览页面上。

尽可能减少页面数量,同时采用框架内的缓存文件,即使整体刷新页面,重新加载速度也可以控制在极短的范围内。

4.1.3 商品类别管理
通过对商品类别表(type)表的操作完成商品类别的查看、添加、修改、删除功能。

操作页面如图4—4所示。

图4—4 商品类别管理页面
商品类别管理只需较简单的增、删、改、查操作,甚至将添加页面也和浏览页面进行了合并,可以让管理员在浏览页面上通过模态框就可以进行所有想进行的操作,只有在必要时进行页面的刷新。

当然,也有直接进行添加类别的页面,只是为了方便在无数据时进行操作。

4.1.4 商品信息管理
通过对商品信息表(goods)、商品详情表(version)、介绍信息图表(intro)、缩略图信息表(pics)的操作完成商品综合信息的查看、添加、修改、删除功能。

添加操作的两种不同情况分别如图4—5和图4—6所示。

图4—5 商品添加页面的单型号商品添加
图4—6 商品添加页面的多型号商品添加
商品信息管理页面系统构成是所有后台管理模块中较为复杂的一部分,因为涉及到的表和信息量都很大,而且存在是否有多型号的判断,所以在添加页面中为管理员提供了选择,减少了页面的数量,也优化了跳转的关系,使所有操作变得非常简明。

4.1.5 订单信息管理
通过对订单信息表(orders)的操作完成订单信息查看、订单状态修改功能。

操作页面如图4—7所示。

图4—7 订单管理页面
对订单的管理只需要对状态进行修改,原则上要禁止删除订单,对于取消的订单只需要将其状态变为无效订单即可,实现了无整体页面刷新,只需点击状态就可以完成管理操作。

4.2 前台用户系统设计
4.2.1 首页
首页主要展示热销商品信息,提供去往个页面的链接,如:登录、列表、详情等。

整体页面如图4—8所示。

图4—8 首页
首页由标题栏、导航栏、轮播广告、热销商品栏、版权栏构成,用户可以在首页上选择即将要进行的操作或浏览。

4.2.2 登录/注册
此页面需要用户输入身份信息,完成登录/注册功能。

登录页面如图4—9所示。

图4—9 登录页面
注册页面如图4—10所示,注册必需信息包括账号、密码、昵称、性别、手机的信息。

图4—10 注册页面
登录/注册页面只需提供相应的表单让用户完成操作即可,采用Ajax进行数据发送,尽可能减少用户账号密码的泄漏风险。

4.2.3 列表页
此类页面展示对应类别的商品简略信息,主要帮助用户进行商品的浏览查找。

整体页面如图4—11所示。

图4—11 列表页
列表页展示所选类别的所有商品,每种商品显示图片、名称、简介、销量、单价信息,让用户最直观的了解现阶段最畅销商品。

商品类别、详细分类两行可以显示所选类别,同时方便用户进行选择。

在显示过程中,后台分配数据量进行了最大限度的减少,以提供更快的加载速度,事实上可以通过瀑布流特效来进一步提升加载速度,但是由于技术原因未能实现。

4.2.4 详情页
此类页面展示对应商品的详细信息,包括缩略图的查看、商品介绍信息展示,提供添加购物车操作,同时具有前往订单页下单的链接。

整体页面如图4—12所示。

图4—12 详情页
详情页显示用户所选择商品的详细信息,有多型号的商品会让用户有选择的选项。

用户进行不同型号改变的时候利用Ajax获取新型号的数据并对页面对应信息进行更新,并不会多次刷新页面,提升用户体验度。

4.2.5 订单页
此类页面展示即将完成购买商品的信息,提供让用户输入配送地点等信息的表单,完成形成的订单的功能。

订单操作页如图4—13所示。

图4—13 订单页
订单页是从详情页跳转过来的,需要用户填写对应的收货信息,网站还不支持对收货地址的保存,每一次下单操作都需要用户填写表单,在填写所有信息并确认之后,就会显示生成的订单信息。

用户可以在个人中心中查看自己所有的订单。

第5章系统测试
5.1 测试目的
测试的定义:程序测试是为了发现错误而执行程序的过程。

但是,测试并不仅仅是为了找出错误,而且要解决错误,以免项目在用户使用时出现不必要的麻烦。

通过对错误的分析,总结在设计上或编码过程中的不足,以免以后出现同样的错误。

同时测试也包括一些非错误类的性能测试,如:用户体验度、访问流畅性等。

5.2 测试特性
1)挑剔性
测试的主要目的不是证明程序无错,而是为了证明程序有错。

所以,要想找出程序中潜在的大部分错误,只有抱着程序有错的目的去测试。

2)复杂性
一个误区是设计测试用例比较容易。

设计测试用例稍有不慎就会顾此失彼,这是一项需要高度技巧和细致耐心的高能工作。

3)经济性
通场这种测试称为“选择测试(Selective Testing)”。

选择测试用例时如果能够注意遵守“经济性”的原则,可以降低测试成本。

5.3 测试方法
5.3.1 寻找错误阶段
此阶段使用黑盒测试方法,采取特殊的测试案例对项目模块进行一部分一部分的测试,快速的发现各功能模块有什么不足,对出现的漏洞进行记录。

由于不用进行代码分析,所以,测试过程会很快结束。

主旨是站在用户的角度来审视项目的整体。

5.3.2 解决错误阶段
在上一阶段测试结束后,需要对出现的错误、漏洞进行修复,期间必然会对代码进行分析和修改,所以,在这一阶段使用白盒测试方法进行测试,更细致的对模块功
能进行检测、修复、优化。

5.4 测试用例
5.4.1 后台系统管理测试
表5—1 后台管理系统测试案例
测试项目功能指标测试方法预期结果结论
前台用户禁用对用户进行禁用
之后,该用户不
能在前台系统完
成登录
禁用用户后,在
前台系统进行登
录操作
用户无法登录正确完成
后台用户管理对后台用户进行
查看、添加、修
改、删除、禁用
操作
通过页面新添加
一个用户,之后
对该用户进行一
系列管理操作
能正确完成添
加、修改操作,
在禁用该用户
后,该用户无法
登录后台系统
正确完成
商品类别管理添加、修改、删
除商品类别
通过页面新添加
一个商品类别,
添加过程中会测
试一些特殊字
符,之后进行管
理操作
能正确完成各项
操作,对违规内
容有对应提示
正确完成
商品信息管理对后商品信息进
行查看、添加、
修改、删除、不
显示操作
通过页面新添加
一个商品信息,
添加过程中会测
试一些特殊字
符,之后进行管
理操作
能正确完成各项
操作,对违规内
容有对应提示
正确完成
订单管理可以完成对订单
状态的修改
首先在前台系统
完成一个新的下
单操作,之后在
后台系统中检测
是否可以修改装

可以对订单状态
进行修改
正确完成
经测试,后台管理系统没有漏洞,可以进行各功能模块的运行,增、删、改、查操作都可以正确生效。

各页面加载速度达到预期效果,刷新过程中在加载uploadify插件过程中易出现卡顿情况。

后台管理员可以正常使用后台管理系统对网站信息进行管理。

5.4.2 前台使用系统测试
表5-2 前台用户系统测试案例
测试项目功能指标测试方法预期结果结论
注册完成注册操作在前台系统进行
注册操作
用户可以注册正确完成
登录完成登录操作在前台系统进行
登录操作
用户可以登录或
提示被禁用
正确完成
列表页可以显示对应类
别商品
进入列表页后快
速多次切换商品
类别
正确显示对应类
别商品
正确完成
详情页显示商品的详细
信息,重点功能
是在选择商品型
号时,可以更新
对应信息
进入详情页后多
次选择不同型号
能正确进行消息
更新
正确完成
订单页可以进行下单操

通过购物车界面
进入,之后填写
一些违规信息进
行测试
填写违规信息会
有提示报错
正确完成
经测试,前台用户系统各功能模块可以实现效果。

列表页和详情页均可以显示对应正确信息,加载速度达到预期效果,各表单验证均已生效。

前台用户可以正常使用前台用户系统进行商品的浏览、购买操作。

结论
本网站可以基本上满足用户对手机挑选购买的需求,整体风格以简洁为主,会让用户可以在最短的时间内完成浏览、购买操作。

开发过程中,使用了laravel框架进行项目功能开发,jquery框架进行效果的实现,大量运用ajax避免页面多次刷新。

优点是整体流程完整,在使用过程中不会出现致命漏洞,所有页面在加载过程中除了请求数据量大的首页类页面,其他所有页面加载速度不会超过1秒。

缺点是有一些功能因为无法使用API接口,无法实现如:瀑布流特效、客服交流等功能。

在今后开发维护过程中会逐步完善功能,在现基础上添加更多可以方便用户操作的功能,或许只是一个小的按钮的添加都会提升用户的好感度。

期望在完全实现所有功能之后,此项目可以有更好的实用价值。

参考文献
[1]金蕾. 国内C2C电子商务发展趋势探讨[J]. 现代商业,2016,(29):24-25.
[2]欧阳平凡. 三种动态网页语言ASP、JSP、PHP之比较[J]. 电脑知识与技
术,2006,(02):124-125.
[3]周瑜嫄. 移动端HTML5广告的受众体验设计研究[D].江南大学,2016.
[4]李强. 以PHP+MySQL为基础的网站开发研究[J]. 网络安全技术与应
用,2014,(05):22-23.
[5]Weber,R.H.Accountability in the Internet of Things. Computer Law & Security Review . 2011
[6]张子丰. 基于PHP的商务网站设计与实现[D].电子科技大学,2015.
[7]老万. 加快网页文件的加载速度[J]. 电脑爱好者,2015,(12):66.
附录核心源代码
后台用户管理代码:
<?php
namespace App\Http\Controllers\admin;
use Illuminate\Http\Request;
use DB;
use session;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class AdminUserController extends Controller
{
//首页遍历显示数据
public function getIndex(){
$data=DB::table('adminuser')->get();
$supadmin=array();//超级管理员数组
$comadmin=array();//普通管理员数组
$cusadmin=array();//客服人员数组
foreach($data as $key => $value){
switch ($value['identity']) {
case '3':
if($value['status']==1){
$status='启用';
}else{
$status='禁用';
}
$time=date('Y-m-d H:i:s',$value['time']);
$message=array(
'id'=>$value['id'],
'name'=>$value['name'],
'user'=>$value['user'],
'status'=>$status,
'time'=>$time
);
array_push($supadmin,$message);
break;
case '2':
if($value['status']==1){
$status='启用';
}else{
$status='禁用';
}
$time=date('Y-m-d H:i:s',$value['time']);
$message=array(
'id'=>$value['id'],
'name'=>$value['name'],
'user'=>$value['user'],
'status'=>$status,
'time'=>$time
);
array_push($comadmin,$message);
break;
case '1':
if($value['status']==1){
$status='启用';
}else{
$status='禁用';
}
$time=date('Y-m-d H:i:s',$value['time']);
$message=array(
'id'=>$value['id'],
'name'=>$value['name'],
'user'=>$value['user'],
'status'=>$status,
'time'=>$time
);
array_push($cusadmin,$message);
break;
}
}。

相关文档
最新文档