《基于php的网上书店系统设计与实现大学论文.doc》由会员分享,可在线阅读,更多相关《基于php的网上书店系统设计与实现大学论文.doc(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、xxxxx学院毕业设计(论文)题 目 基于PHP的网上书店系统设计与实现 系(分院) 信息工程 学生姓名 XXXXXXX 学 号 xxxxxxxx 专业名称 xxxxxxx 指导教师 xxxxxx 2017 年 4 月 16 日摘 要在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。网站建设在Internet应用上的地位显而易见,当代企业纷纷建立自己的网站,借助于互联网扩大自己的影响、推广自己的产品,同时通过互联网快速的信息传递加速自身的发展.本文以PHP为开发技术,实现了一个虚拟的网上书店购物系统。网上书店
2、系统分为前台管理系统和后台管理系统。本系统在这两方面实现了以下功能:购物车管理,商品搜索,用户资料修改等功能,为管理员提供了会员管理,友情链接管理,商品管理,新闻信息管理,订单管理,会员充值信息管理等功能。通过这些前台、后台功能模块的设计,基本上实现了整个网上图书交易过程。在设计方面,系统采用B/S三层结构,同时使用PHP技术进行动态页面的设计,从系统的安全性和代码的可重用性方面考虑。后台数据库选用MYSQL数据库。关键词:PHP:Mysql:网上书店:B/S目录一 概 述41.1系统说明41.2 系统特点41.3 本课题主要工作4二 开发环境介绍52.1 PHP技术52.2 MVC模式62.
3、3 B/S结构72.4 数据库技术8三 总体设计93.1 系统总体目标93.2 功能分析103.3 数据流图13四 详细设计144.1 用户模块设计概述144.1.1 系统原理144.1.2 用户模块的程序流程图154.2数据库设计概述.15 五 详细设计165.1 首页165.1.1 登录注册185.1.2 浏览商品20六 后台管理设计226.1 登陆226.2 修改密码266.3 管理页面29总 结33致谢.35参考文献36前言1、网上书店发展和未来进入21世纪以后,随着整个社会的发展、进步,制约网上交易的各个瓶颈问题逐一被击破,各企业也纷纷的加入到电子商务的洪潮之中。中国互联网协会网络营
4、销工作委员会调查显示,随着国内产业环境和消费市场的成熟,网络购物将在今年实现更大发展。根据会员企业艾瑞咨询集团的预测,2008年我国网络购物交易将同比增长125.1,交易总量将达1263亿,形成了中国网络购物的快速增长浪潮,网络购物这一消费方式给人们生活带来的变化,除了购物场所的改变以外,更重要的是大大改变了传统的消费行为习惯,无论是否在网上购物,上网查看产品的相关信息,已经成为购物决策环节的重要组成部分,这一环节对购物行为的实际发生起到了至关重要的指导作用。2、本文主要研究内容随着科学技术和经济的不断发展,越来越多的中小公司和私人企业通过各种方式方法都从巨大的商品经济这块大蛋糕中分到了属于自
5、己的一份,规模也是越来越大。同时,与之相对应的销售管理和仓库管理等众多管理类的服务系统也就开始倍受各业户的喜爱。企业销售管理系统能够非常清晰的显示出企业销售情况,帮助相关人员做出正确的决策。根据软件工程软件开发原则是在图书销售网站的开发设计主要依据,与学过的面向对象的可视化语言相结合而完成,以及自己根据前人工作经验开发设计的系统。 此系统以PHPStrom作为前台开发工具和Mysql这款强大的数据库专业软件做后台数据库的设计,整个系统用简洁明快的界面展现出来,使操作简单可行,用户使用方便、简洁。本系统采用当今社会比较先进、优雅的Laravel框架技术开发一个性能优越、可扩展性强和安全可靠稳定的
6、在图书销售网站。一 概 述1.1 系统说明网上书店系统是一个基于Internet,采用B2C(Business to Consumers)模式,并根据现有的网上书店系统的现状而设计开发的电子商务平台。本文以PHP为开发技术,实现了一个虚拟的网上书店购物系统。网上书店系统分为前台管理系统和后台管理系统。本系统在这两方面实现了以下功能:购物车管理,商品搜索,用户资料修改等功能,为管理员提供了会员管理,友情链接管理,商品管理,新闻信息管理,订单管理,会员充值信息管理等功能。通过这些前台、后台功能模块的设计,基本上实现了整个网上图书交易过程。在设计方面,系统采用B/S三层结构,同时使用PHP技术进行动
7、态页面的设计,从系统的安全性和代码的可重用性方面考虑,运用PHP的Laravel框架进行开发。后台数据库选用MYSQL数据库。1.2 系统特点(1)本系统完全基于PHP技术,只要有一台电脑并且能联网就可以浏览本网站。(2)采用PHP技术和MYSQL数据库开发,具有代码易懂,可扩展性高,性能高、数据安全等特点(3)可以直接用网站登录,维护方便(4)独立性强(5)操作简单,画面简洁(6)支持所有的Windows系列操作系统以及移动终端网页访问。1.3 本课题主要工作在本文中,基于开发面向对象软件的过程中,对系统的需求分析以及具体实施过程都进行了较为完善的介绍,在本文中本人的具体工作如下:1.对系统
8、进行需求分析。对图书销售网站的需求进行分析以了解系统的基本特征和想要实现目标,并且对系统用户的特性进行分析,并分析业务流程以及梳理系统非功能性需求和功能需求。2.选择适当的技术解决方案。搭建一个系统开发平台,并对系统实施所涉及到的关键技术进行研究。根据实际、开放以及开源的原则,设计出既能够保证需求,而且开放源代码的以及可扩展的架构体系。3.系统的设计和实施。该系统的设计原则基于MVC的设计思想,使得系统中,业务逻辑和数据存储在一个单独的状态下。详细研究系统的业务流程、用户角色,以此为基础对系统的机构进行设计,并对系统的详细实现过程进行介绍。4.测试系统。在本文中,对系统的详细测试过程进行了介绍
9、。二 开发环境介绍2.1 PHP技术PHP,是英文超文本预处理语言Hypertext Preprocessor的缩写,是一种内嵌于HTML 的高级语言,而且也是一种可以在服务器端运行的内嵌于HTML文档的脚本语言。 PHP的独特的语法不仅包含了Perl、Java,C以及PHP本身所特有的语法,而且它可以比Perl语言和CGI语言更方便动态网页的执行。用PHP做出的动态网站页面和其他的网站开发语言相比,PHP是将程序内嵌到HTML文档中去执行的,执行的效率远远高于全部生成HTML标记的CGI;而且PHP还可以执行编译,编译能够达到加密和优化代码的作用,使程序运行更快更安全。因此PHP在网站开发中
10、得到广大设计者青睐,因而得到广泛应用。PHP优势:1、开放的源代码:所有的PHP源代码都可以直接获得。2、PHP的快捷性:程序运行速度快、技术人员学习快。内嵌于HTML中:因为PHP可以内嵌于HTML语言,相对于其他开发语言。它编辑简单,实用性强,因而很适合初级学习者。3、PHP不收费:PHP和其它技术相比是免费的而且是开源的。4、面向对象:在PHP4,PHP5设计中,面向对象方面都得到了很大的提高,PHP完全可以支持开发大型商业项目,满足了众多设计者的需求。5、效率高:消耗很少系统资源。6、跨平台性强:因为PHP是运行于服务器端的脚本,因而能够在很多种系统中运行,如LINUX、WINDOWS
11、等系统。7、专业专注:PHP主要支持脚本语言,PHP为类C语言。2.2 MVC模式MVC模式(三层架构模式)(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为Model(模型)、View(视图)和Controller(控制器)三个基本部分。MVC模式最早是由Trygve Reenskaug在1974年提出的,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式。MVC模式是以实现一种动态的程序设计为目的的模式,以使后续对程序的修改和扩展简化,并使程序某一部分的重复利用成为可能。此外,此模式通
12、过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能。程序员可以通过自身的专长分组,MVC架构如图2-1所示。控制器:负责转发请求,对请求进行处理。视图:界面设计人员进行图形界面设计。模型:程序员编写程序应有的功能、数据库专家进行数据管理和数据库设计。图2-1 MVC三层架构示意图2.3 B/S结构在三层体系结构的B/S(Browser/Server,浏览器/服务器结构)系统中,用户可以通过浏览器向分布在网络上的众多服务器发出请求。B/S系统极大地简化了客户机的工作量,客户机上只需要安装、配置少量的客户端运行软件即可,服务器将担负大量的工作,
13、对数据库的访问以及应用程序的执行都将由服务器来完成。B/S架构的不断成熟,主要使用WWW浏览器技术,结合多种浏览器脚本语言,用通用浏览器需要实现原本复杂的专有软件来实现的强大功能,并节约了开发成本,是一种新的软件架构。基于B/S架构软件的安装,修改,维修的需要在服务器端解决。使用该系统时,只需要一个浏览器用户可以运行所有的模块,从而实现了“零客户端”功能,很容易在运行时自动升级。B/S架构也提供了一个均质机,网上异构网络,异构应用服务的联机,统一的开放服务最现实的基础。B/S系统包括:表示逻辑层,控制逻辑层,数据展现层,三层是相对独立又相互关联,在这里我们在三个层面上做一个介绍:1.表示逻辑层
14、,其主要任务是提出一个服务请求到网络上的Web服务器,服务器验证身份,使用HTTP协议把所需的主页传送给客户端,客户机接受传来的主页文件,并把它显示在Web浏览器上。2.控制逻辑层,其主要任务是接受用户的数据请求,首先需要执行相应的程序和数据库连接,并进行数据处理请求的数据库服务器,然后数据库服务器等待数据处理的结果并提交Web服务器,然后由Web服务器返回给客户端。3.数据表示层,其主要任务是接受Web服务器请求的数据库操作,来实现对数据库的查询,修改,更新和删除的功能,操作结果返回给Web服务器。两种结构最大的不同在于参与运算的客户端,而客户端的三层结构的两层结构不参与,而只是接收用户的请
15、求,显示了最终的结果。由于客户端的三层结构并不需要参与计算,所以客户端电脑配置的要求相对较低。此外,由于从通过仅在最终结果的客户端应用程序的服务,一个相对小的数据量,也可以使用电话线作为传输线路。使用C/S的两层结构,利用电话线作为传输线可能无法接受,因为速度太慢。该软件来配置服务器配置的三层结构可以改善,减少了客户端的配置。这样的增幅是只有一台服务器(应用服务和数据库服务可以放在同一台计算机上)的价格,但它减少了几十个客户机的价格。在降低总体拥有成本发挥了作用。而在数据一致性方面的比较来说:在C/S结构的软件解决方案,远程管理的大型集团用于整个安装区域级服务器,然后同步数据模型。之后这些服务
16、器完成必须每天同步,总部设在为了得到最终的数据。不仅由于由单个数据库的本地网络故障不能同步,即使同步,每个服务器不是一个点上的数据,这些数据可以永远是相同的,不能用于决策。对于软件的B/S结构而言,数据集中存储,每次出现的一个客户的业务文档直接到中央数据库,数据一致性问题不存在。对于C/S来说B/S软件数据安全性比较由于C/S结构软件的数据分布特性,客户端发生的事情,抢劫,地震,病毒,黑客等都成了可怕的数据杀手。此外,异地软件应用本集团的层面,软件的C/S结构,必须在多台服务器和多台服务器之间的数据同步安装。因此,每个数据点的数据的安全性影响对整个应用程序的安全性数据。因此,对于在组级方面大规
17、模应用,该软件的C/S结构将不会在接受安全。B/S结构的软件来讲,由于其数据集中存放于总部的数据库服务器,客户端不保存任何业务数据和数据库连接信息,也无需进行数据同步,所以不存在这些安全问题。2.4 数据库技术在软件项目中,通过使用数据库来操作数据,可以保证数据的独立性、一致性和安全性,为系统提供有效地访问数据的方式,同时为程序员减少了应用程序的开发时间。常见的数据库无非分为两类,一类是关系型数据库(Oracle,DB2,Mysql,SQL Server )和非关系型数据库(NoSql、MongeDB)。不同的数据库有各自的优缺点,此处不做具体介绍。Mysql支持多线程的特点,可以方便的利用系
18、统资源,有效提高速度,而且提供了TCP/IP、ODBC和JDBC等多种方式途径来连接数据库;虽说其功能不够强大、规模也相对较小,但是对于本系统来说足够了,同时也可以进行二次开发的数据库表结构空间的扩展。使用Mysql建立系统数据库,不仅有利于前期对数据的整合处理操作,同时利于后期的二次开发的数据扩展操作,对于有限级的数据处理,Mysql可以很好的胜任。图2-2 数据库管理系统和接口的原理三 总体设计3.1 系统总体目标(1)数据共享推进图书销售网站的数据校验和数据共享规范化和制度化建设,对图书销售网站数据查询的精度和效率进行提升。(2)实现了网上图书销售业务的各种功能系统主要实现了交易信息、网
19、站信息、基础信息、系统管理、个人信息等功能模块。(3)在业务流程的网上图书销售规范实现对网上图书销售业务的全面、规范、科学、系统的管理;提供多种信息渠道,以最大限度地提高系统的影响;提高工作效率和管理水平,对图书销售网站中所涉及到的不足进行弥补。(4)实行现代化的管理手段该系统应具有界面清晰,操作简便;不同系统的用户应该有不同的操作权限;该系统必须有一个数据库备份和恢复功能,提高了数据的安全性。该系统应该是基于网络的系统,只需要有一台能够联网的设备就可以实现对网站的管理。3.2 功能分析根据系统功能的要求,网上书店系统总体分为前台管理和后台管理。前台管理包括浏览书籍,查询书籍,订购书籍,购物车
20、,用户信息维护等功能。后台管理包括站内新闻管理,书籍管理,订单管理,友情连接和会员管理等模块。前台的具体描述如下:1 浏览书籍(1)商品详细资料(2)商品编号2 订购书籍3 购物车4 用户信息维护(1)用户注册(2)用户登陆(3)用户资料修改后台管理具体描述如下:1 新闻管理(1)添加新闻,包括新闻标题和新闻内容等;(2)修改新闻(3)删除新闻2 书籍管理(1)添加书籍类别(2)修改书籍类别(3)删除书籍类别(4)添加书籍信息,包括商品类别,名称等信息;(5)修改书籍信息(6)删除书籍信息(7)查看书籍信息3 订单管理(1)处理订单;(2)办理发货;(3)办理结帐;(4)删除订单。4 友情连接
21、(1)增加友情连接(2)删除友情连接;(3)修改友情连接。5 会员管理功能(1)注册用户,包括用户名,密码等信息;(2)修改用户信息;(3) 删除用户信息。6. 系统用户管理功能(1)添加系统用户,包括用户名,密码等信息;(2)修改系统用户信息;(3)删除系统用户信息。从功能描述的内容可以看到,可以实现6个完整的功能。根据这些功能,设计出系统的功能模块。图3-1给出了前台管理和后台管理之间的关系。网上书店系统前台管理浏览新闻浏览书籍查询书籍购买书籍后台管理新闻管理书籍管理订单管理友情管理系统管理用户注册图3-1: 系统功能模块示意图在本系统中,用户管理模块的功能比较简单。在系统初始化时,用户A
22、dmin作为默认的“系统管理员”,由我手动添加到数据库中。Admin用户,可以创建其他的管理员信息;普通用户,则可以修改自己注册信息和密码。用户管理功能模块的关系如图3-2所示。系统用户信息管理修改自身的密码创建,修改和删除管理员信息删除用户信息修改自身的密码创建,修改自身的信息图3-2 用户管理功能模块关系图7. 系统流程分析本系统分以下两个流程:(1)、前台客户购物流程如图3-3所示。提交订货单浏览商品选择商品订购商品未注册用户已登录注册用户未登录注册用户提交订货单提交订货单注册登录图3-3 前台客户购物流程(2)、后台订单处理流程如图3-4所示。订单处理用户订单订单发货订单结帐订单删除图
23、3-4 后台订单处理流程3.3 数据流图新用户通过填写注册信息,注册一个账号,若用户已有账号,直接登录即可进入系统。具体流程如图3-5所示。注册结果用户新用户1注册2进入系统功能选择用户用户图3-5 前台处理流程四 详细设计4.1 用户模块设计概述4.1.1 系统原理 本系统的开发是基于现在电子商务应用最广的B/S(Browser/Server)既浏览器/服务器结构,原理图示如图4.1所示图4-1 基于B/S模式的系统网上书店系统的主要体系结构包括:(1)数据服务器(2)WEB服务器(3)后台管理平台(4)客户端应用系统体系设计主要考虑的业务技术因素包括:(1)业务处理方式(2)数据处理量,存
24、储量(3)应用功能设计(4)服务器设计(5)存储设计(6)安全设计4.1.2 用户模块的程序流程图 用户模块的设计,其主要功能的程序流程图设计如图4.2所示:开始是否新用户登录注册进入系统浏览公告浏览商品购买商品修改信息图4-2 用户模块处理流程4.2 数据库设计概述本系统数据库使用的是Mysql数据库,Mysql是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。Mysql所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低
25、,尤其是开放源码这一特点,一般中小型网站的开发都选择 Mysql作为网站数据库,本系统ER图如图4-3所示。图4-2 数据库设计ER图五 详细设计程序的主要目的就是通过网站来推广互联企业的产品和服务,并使客户随时可以了解企业和企业的产品,为客户提供在线服务和订单处理功能。从长期的战略目标来说,网站不仅仅是产品和服务的推广,而是通过Internet、企业内部网(Intranet)和企业外部网(Extranet),将买家与卖家、厂商和合作伙伴紧密结合在了一起,因而消除了时间与空间带来的障碍。系统主要分为前台和后台。前台包括产品的展示及会员购物等模块。 5.1 首页下图5.1所示的界面是网上书店的前
26、台首页。图5-1 网上书店前台首页实现代码:class IndexController extends Controller /* * 主页 */ function index() /1.查询出最新上架的6本图书,按时间排序 $book = DB:table(book)-where(book_isup,=,1)-select(book_id,book_name,book_author,book_press,book_img,book_pubtime); /2.查询所有的分类 $class = DB:table(class)-get(); $classs = DB:table(class)-ge
27、t(); $classbook = DB:table(book)-where(book_isup = 1)-get(); /3.显示出推荐的图书,最多2本 $recommedbook = DB:table(book)-where(book_isup = 1,book_recommend = 1)-select(book_id,book_name,book_author,book_press,book_img,book_pubtime); /4.查询促销的几本书。 $isprobook = DB:table(book)-where(book_isup = 1,book_pro = 1)-sele
28、ct(book_id,book_name,book_author,book_press,book_img,book_pubtime); /5.查询分类及每个分类的类型。 $style = DB:table(style)-get(); return view(index/index, book = $book, class=$class, classbook=json_decode(json_encode($classbook),true), classs = json_decode(json_encode($classs),true), recommedbook=$recommedbook,
29、isprobook = $isprobook, style =$style, ); /* * 选择某一种图书 */ function selbook($id) $book = DB:table(book)-join(stock,book.book_id,=,stock.book_id)-where(book.book.id,=,$id)-first(); /* * 全局搜索模糊查询。作者、书名、书号、出版社,分页显示 * */ function select($condition) $where =time_isup = 1; $where .= and book_author like %
30、. $condition . % and book_name like % . $condition . % and book_id like % . $condition . % and book_press like % . $condition . %; $book = DB:table(book)-whereRaw($where)-select(book_id,book_name,book_author,book_press,book_img,book_pubtime); return ; public function clear_logout() session_start();
31、unset($_SESSION); redirect(auth.login); 前台包括:会员登录及注册、商城介绍、商品一览、打折专区、销售排行、成交记录、商城资讯、联系我们、留言板等功能模块。5.1.1 登录注册用户以会员的身份登录之后方可在网站上进行购物。如果用户已经是该网站的会员,则只需在“用户名”和“密码”文本框中输入相应的用户名和密码,最后单击【提交】按钮即可进入会员购物界面。如果用户是首次登录,需要先注册,然后才能以会员的身份登录进入网站购物。登录注册功能实现界面如图5-2,5-3所示。图5-2 登录功能实现界面图5-3 注册功能实现界面实现代码:class LoginContro
32、ller extends Controller /判断前台用户登录并跳转 public function login() $msguser_account = Input:get(user_account); $msguser_password = Input:get(user_password); $message = array( required = :attribute 不能为空, min = :attribute 长度必须大于 :min, max = :attribute 长度必须小于 :max ); $attributes = array( user_account = 用户名,
33、user_password = 用户密码, ); $validator = Validator:make(Input:all(), user_account = required, user_password = required, , $message, $attributes); if ($validator-fails() return redirect()-back()-with(error,用户名或密码错误!); else $user = DB:table(user)-where($msg)-first(); if (!$user) return redirect()-back()-
34、with(error, 用户名或密码错误!); else session(user = $user-user_id); session(user_account = $user-user_account); return redirect(index/index); /退出 public function out() session(user = null); return redirect(index/index); public function index() $style = DB:table(style)-get(); return view(login.login, style =
35、 $style, ); 5.1.2 浏览商品商品一览模块主要实现用户查看商品的功能,包括商品名称、价格、折扣、成交量、上架时间、图片等信息。商品一览模块实现界面如图5-4所示。图5-4 商品一览模块实现界面实现代码:class AllbookController extends Controller function index() /查询所有图书 $bookall = DB:table(book)-where(book_isup,=,1)-get(); $style = DB:table(style)-get(); return view(allbook/allbook, book =$bo
36、okall, style =$style, ); /* * 选择某一种图书 * */ function selbook($id) $style = DB:table(style)-get(); $book = DB:table(book)-join(stock,book.book_id,=,stock.book_id)-where(book.book_id,=,$id)-first(); /返回到单个图书页面 return view(buy/buybook, book = $book, style = $style, ); 六 后台管理设计后台主要是管理界面,主要包括商品管理、会员管理、订单管
37、理和公告管理等等。6.1 登陆管理员登录后台之后方可对商品的信息进行管理。需在“账号”和“密码”文本框中输入相应的管理员账号、密码以及验证码,最后单击【提交】按钮,账号、密码、验证码全部正确即可进入会员购物界面。如图6-1所示图6-1 后台管理员登陆界面实现代码:class AdminController extends Controller function login() $msgadmin_account = Input:get(admin_account); $msgadmin_password = Input:get(admin_password); $message = array
38、( required = :attribute 不能为空, min = :attribute 长度必须大于 :min, max = :attribute 长度必须小于 :max ); $attributes = array( admin_account = 用户名, admin_password = 用户密码, ); $validator = Validator:make(Input:all(), admin_name = required|min:6|max:10, admin_password = required|min:6|max:10, , $message, $attributes
39、); if ($validator-fails() return Response:json($validator-errors()-first(); else $user = DB:table(admin)-where($msg)-get(); if (!$user) return Response:json(用户名或密码错误!); else session(admin = $useradmin_id); return Response:json(1); function addbook(array $data) $path = file_pro(); $bool = DB:table(book)-insertGetId( book_name = $databook_name, book_author = $databook_author, book_press = $databook_press, book_class = $databook_class, book_style = $databook_style, book_pubtime = $databook_pubtime, book_isup = $databook_isup, book_pri
限制150内