您的当前位置:首页正文

华中科技大学双学位学士学位论文

2021-09-13 来源:小奈知识网


华中科技大学双学位学士学位论文

电子商城网站的设计与实现

· 学生姓名 :胡海强

指导老师 :黄志老师 所在院系 :计算机

所学专业 :计算机科学与技术 研究方向 :

1

摘 要

随着Internet技术的发展,人们的日常生活已经离不开网络。未来社会人们的

生活和工作将越来越依赖于数字技术的发展,也将越来越数字化、网络化、电子化、虚拟化。电子商务也随着网络的发展日益和人们的生活贴近。Internet的发展历程以及目前的应用状况和发展趋势,可以充分地相信网络技术将极大的改变我们的生活和工作方式,甚至社会的价值观也会发生某种变化。 本课题主要基于电子商务的基本原理,运用PHP开发技术搭建一个动态的网上商城的电子商务网站。它是在Windows系统环境下,以Mysql数据库开发平台,Apache网络信息服务器,采用PHP(Hypertext Preprocessor)技术开发的网上购物系统。本系统分为前台与后台两部分组成,前台主要针对消费者,主要包括商品展示、会员注册、购物车管理、商品收藏管理、订单管理等功能模块;后台由管理员使用,主要包括商品管理、进货管理、订单管理、系统管理等功能模块。通过这些功能的实现,给商家提供一个动态、交互式、具有商品提供、系统管理等功能的电子商务平台。

关键字:电子商务,网络购物,数据库开发,PHP开发技术

· 第 1 页

Abstract

Along with the development of internet technology, daily life can not go on with out 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 mainly based on the basic principles of electronic commerce, electronic commerce website using PHP development technology to build a dynamic online store. It is in the Windows environment, with Mysql database development platform, Apache Internet information server, using PHP (Hypertext Preprocessor) technology development online shopping system. The system is divided into front and back two parts, the front desk for consumers, including commodity display, membership registration, shopping cart management, merchandise management, order management and other functional modules; the background by the administrators, including commodity management, purchase management, order management, system management and other functional modules. These functions are implemented, for merchants to provide the platform of electronic business affairs is a dynamic, interactive, with the provision of goods, system management and other functions.

Keywords:The development of e-commerce, online shopping, database, PHP

Technology

· 第 2 页

目 录

摘 要............................................................................................................................1 Abstract.......................................................................................................................2 1 绪言........................................................................................................................5

1.1 电子商城的定义...................................................................................................5 1.2 系统设计的背景...................................................................................................5 1.3 系统开发的目的和意义.......................................................................................5 1.4 php技术的介绍.................................................................................................6

2 开发工具及技术选择.............................................................................................7

2.1 b/s结构的概述.....................................................................................................7 2.2 apache简介..........................................................................................................7 2.3 mysql数据库........................................................................................................8 2.4 客户与服务器......................................................................................................9 2.5 开发工具的使用.................................................................................................11 2.6 ci框架的简介......................................................................................................11

3 系统实现的目标..................................................................................................13

3.1 系统总体目标设计............................................................................................13 3.2 系统的可行性研究............................................................................................13 3.2 需求分析............................................................................................................14 3.4 系统功能结构图................................................................................................16

4 系统设计..............................................................................................................17

4.1 系统设计...........................................................................................................17 4.2 开发运行环境...................................................................................................17 4.3 数据库设计.......................................................................................................17

5 系统的详细设计.................................................................................................24

5.1 网站前台设计..................................................................................................24 5.1.1 前台总框架...............................................................................................24 5.1.2 用户管理模块...........................................................................................25 5.1.3 商品浏览...................................................................................................29 5.1.4 购物车模块...............................................................................................30

·

第 3 页

5.2 后台部分.........................................................................................................31 5.2.1 后台总体框架..........................................................................................31 5.2.2 管理员登陆..............................................................................................32 5.2.3 商品管理..................................................................................................32

6 测试报告..........................................................................................................34

7 总结...................................................................................................................36

致谢.........................................................................................................................36 参考文献..................................................................................................................36

· 第 4 页

1 绪言

1.1 电子商城的定义

电子商城源于英文E-Commerce,简写为E-shop。顾名思义,其内容包含两个方面:一是电子方式,二是商贸活动。

(电子商城)指的是利用简单,快捷,低成本的电子通信方式,买卖双方不谋面面在网上开展的各种商贸活动。在全球知识经济和信息化高速发展的今天,信息化是决定企业成败的关键因素,信息的有效利用成为新经济模式中企业增强竟争力的重要手段。

电子商务作为一种崭新的商务运作模式,越来越受到企业的重视。电子商务的魅力在于它能打碎现存的一切链条结构,让产品群,客户群,技术群,物流群等重新排队,优化组合,为企业业务的重新组合提供无限商机,开辟新的竞争领域,形成新的利益分配格局。

1.2 系统设计的背景

21世纪的今天,网络在人们生活中已经日益盛行,越来越多人已经离不开网络。人们已经不再满足于了解最新信息、查找资料等一些传统的网络使用方式,而是过渡到娱乐、购物等新兴的网民生活。网上购物,成了当今广大群众的时尚。而商家,也逐渐重视起网络的作用,充分利用起网络的低成本、高效性来宣传企业形象和销售商品。因此,为了方便广大群众,满足商家的需求,我们专门构建网上商城系统。

1.3 系统开发的目的和意义

长期以来,大部分的销售活动,都是面对面的销售,如:店铺销售、广交会、上门推销等。这些销售活动,都会受到地域、时间、环境等方面的影响,从而给企业、公司等的销售管理带来极大的不便。而且信息的人工管理,也存在诸多缺点。而网上商城,正好能全面解决这样的问题。产品生产-销售-客户订单管理系统软件为企业、公司等的销售管理带来了极大的方便。产品生产-销售-客户订单管理系统能够为用户提供可靠的信息储存和快捷的信息处理手段。作为计算机应用的一部分,使用计算机对企业、公司的产品销售信息进行管理,具有手工管理所无法比拟的优点。因此,开发这样一套管理系统成为很有必要的事情,它能够具体化、合理化的管理单位的销售信息情况,用结构化的思维方式去了解计算机的工作原理。

· 第 5 页

1.4 php技术的介绍

PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。PHP 独特的语法混合了C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。PHP安装它可以比 CGI或者Perl更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。

PHP的特性包括: 1、开放的源代码:

所有的PHP源代码事实上都可以得到。 2、PHP是免费的:

和其它技术相比,PHP本身免费且是开源代码。 3、php的快捷性:

程序开发快,运行快,技术本身学习快。嵌入于HTML:因为PHP可以被嵌入于HTML语言,它相对于其他语言。编辑简单,实用性强,更适合初学者。

4、跨平台性强:

由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS、Mac OS下。

5、效率高:

PHP消耗相当少的系统资源。 SiteTeam企业自助建站软件是一部专业为搜索引擎营销(网站优化/SEO)而设计,操作极简单,网站极稳定、故障自动修复、在线升级维护、建站速度极快、专为大众上网营销而设计的完全免费开源企业建站系统!

6、图像处理:

用PHP动态创建图像 7、面向对象:

在php4,php5 中,面向对象方面都有了很大的改进,php完全可以用来开发大型商业程序。

8、专业专注:

PHP支持脚本语言为主,同为类C语言。

· 第 6 页

2 开发工具及技术选择

2.1 b/s结构的概述

B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互 。

B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零安装、零维护。系统的扩展非常容易。

2.2 Apache的简介

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。

Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。

·

第 7 页

Apache web服务器软件拥有以下特性: 支持最新的HTTP/1.1通信协议

拥有简单而强有力的基于文件的配置过程 支持通用网关接口

支持基于IP和基于域名的虚拟主机 支持多种方式的HTTP认证 集成Perl处理模块 集成代理服务器模块

支持实时监视服务器状态和定制服务器日志 支持服务器端包含指令(SSI) 支持安全Socket层(SSL) 提供用户会话过程的跟踪 支持FastCGI

通过第三方模块可以支持Java Servlets

如果你准备选择Web服务器,毫无疑问Apache是你的最佳选择。

2.3 mysql数据库

MySQL是一个开放源码的小型关联式数据库关联系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。MySQL目前Internet上流行的网站构架方式是L(Linux+Apache+MySQL+PHP/Perl/Python)和LNMP(Linux+Nginx+MySQL+php/per/Python),即使用Linux作为操作系统,Apache和Nginx

·

第 8 页

作为Web服务器,MySQL作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统。

Mysql系统特性

1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性 2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统

3.为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。 4.支持多线程,充分利用CPU资源

5.优化的SQL查询算法,有效地提高查询速度

6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。

7.提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。

8.提供TCP/IP、ODBC和JDBC等多种数据库连接途径。 9.提供用于管理、检查、优化数据库操作的管理工具。

10.支持大型的数据库。可以处理拥有上千万条记录的大型数据库。 11.支持多种存储引擎。

2.4 客户与服务器

www世界里可以包括现有的Internet 各种网络资源服务,通过统一资源(Uniforom Resource Location ,URL)指明通讯协定以及地址的方式,取得网络上各种的服务。

Web由客户与服务器组成,如下图所示:

· 第 9 页

客户由TCP/IP加上web浏览器组成,web服务器由http加后台处理数据库组成。Httpd是web服务器的通用名称,通过程序在服务器上运行的web服务器程序。客户的浏览器和服务器用TCP/IP的http(超文本传输协议)建立连接,使得呵护与服务器二者的超文本传输变的容易,所有的客户及web服务器统一使用TCP/IP,统一分配ip,使得客户和服务器的逻辑链接变成简单的点对点的链接。URL实现了单文档在整个国际互联网主机中的定位,客户的请求通过web服务器的公用网关接口(CGI,Common Gateway Interface)可以很好地与后台的各种类型数据接口。

HTTP是基于客户机/服务器模型的信息分布方式,原意为“请求/响应模型”、即信息文件存放在服务器上,用户通过程序向服务器发出请求并访问服务器上的数据。HTTP通过客户机和服务器彼此互相放松消息的方式工作。客户机可向服务器按多用途的国际邮件扩充协议(MIME,Multipurpose Internet Mail Extension

Protocol)类型发送或接受信息,最常用的是GET,HEAD和POST。客户机按格式发送请求:GET URL,接着收到从服务器制定地点返回的文档文件。包括HTTP的版本,请求的状态(成功、没找到、被否认等)和文档MIME类型。HEAD请求则是要求服务器发送文件头信息,和GET请求的返回相比,仅少了文档主体。POST请求则是要求服务器接收信息,信息的形式可以是发向新闻组的信息形式,也可以通过web页面向服务器提交信息,通过服务器设定的CGI完成。 正是如此巨大的需求促进了web开发技术的飞速进步。从Javascript到JavaApplet到Flash,从Html到Dhtml到Xml,从CGI到PHP,web开发技术已远

·

第 10 页

非当年的吴下阿蒙了。如今的web开发无论是前台界面的表现形式与技术,还是后台数据的计算、管理和维护,都已经发生了深刻的变化。这些现代WEB技术为网站或应用开发提供了强有力地支持,他们正向着现代化软件技术所指导的组件化,框架化稳步前进。

2.5 开发工具的使用

开发工具:Sublime Text 2

Sublime Text 2 的简介

Sublime Text 是一个代码编辑器,也是HTML和散文先进的文本编辑器。 Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。 Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

2.6 CI框架的简介

CI,CodeIgniter,是一套给 PHP 网站开发者使用的应用程序开发框架和

工具包。它提供一套丰富的标准库以及简单的接口和逻辑结构,其目的是使开发人员更快速地进行项目开发。

CodeIgniter是由Ellislab公司的CEORickEllis开发的。其核心框架是为这个程序特别编写的,而其他很多类库、辅助函数和子系统则来自于RickEllis和P

·

第 11 页

aulBurdick编写的内容管理系统ExpressionEngine。 CodeIgniter的主要特性如下: * 基于 MVC 体系 * 超轻量级

* 对数种数据库平台的全特性支持的数据库类 * Active Record 支持 * 表单与数据验证 * 安全性与 XSS 过滤 * Session 管理

* 邮件发送类,支持附件,HTML 或文本邮件,多协议(sendmail, SMTP 和 Mail)及更多。

* 图像处理类库(剪裁,缩放,旋转等)。支持 GD,ImageMagick 和 BetPBM * 文件上传类 * FTP 类 * 本地化 * 分页 * 数据加密 * 基准测试 * 全页面缓存 * 错误日志 * 应用程序评测 * 日历类 * User-Agent 类 * Zip 编码类 * 模板引擎类 * Trackback 类 * XML-RPC 类库 * 单元测试类

* “搜索引擎友好”的 URL * 灵活的 URI 路由 * 支持钩子和类扩展

·

第 12 页

* 大量的辅助函数

3 系统实现的目标

3.1 系统总体目标设计

网站分为两部分,第一部分为网站前台部分,包括网站的登陆页面以及前台展示页面,其中前台展示页面之后呈现商品展示页面。之后可以将物品加入购物车,呈现购物车显示页面。第二部分是网站后台数据库管理部分,主要为商品数据库管理,分别针对商品数据的上传、修改、更新以及删除动作。

3.2 系统的可行性研究

可行性分析(Feasibility Analysis)也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方面内容。 (1)经济可行性

主要是指一个新的系统开发需要的投资费用和收来的运行费用,并发估计的新系统的收益进行比较,看是否有利。 (2)时间可行性

这包括系统在目前的环境下能否正常运行,运行后期所引起的各方面变化,以及这些变化对社会消费者的因素所产生的影响。 (3)技术可行性

利用现有的设备,软件及技术人员,新系统的目标能否达到,这也是可行性研究中常需要考虑的一个问题。 (4)社会可行性

系统是否适应人类社会文明的发展,是否能够真正为社会所承认并为社会所利用,是否具有很好的社会意义。

决定可能性的主要因素是:只要资源和时间不加以限制,所有的项目都是可行的。然由于资源匮乏和所交付实践限制的困扰,使得基于计算机的系统

·

第 13 页

开发变得比较困缓,因此,尽早对软件项目的可行性做出细致而谨慎的评估时十分必要的。如果在定义阶段及早发现将来可能出现的问题,及早做出决定。可以避免大量的人力、财力、实践上的浪费。

本系统采用PHP+Mysql+Apache进行开发,其中前台用HTML嵌入PHP进行页面开发和管理用户界面,提示信息完善,界面友好有亲和力;后台采用Mysql数据库开发和管理数据库,部分关键内容采用事务处理机制,具有很强的错误处理能力。本系统的开发环境使用现在特别流行的开源Apache服务器,使用方便、运行稳定、安全可靠。PHP+Mysql+Apache这个国际公认的网站开发黄金组合在电子商务系统开发上,得到广泛的应用。如易趣网、百度有啊、ecshop等大型电子商务网站。综上所述,本系统在技术方面是可行的。

3.3 需求分析

初步调查

本次调查主要是通过自己亲身体验现在各大 B2C 网站的购物流程,如卓越网、百度有啊、淘宝网、京东商城等等,熟悉其实现购物的方式,了解其管理的运作方式和管理业务流程,分析现在 B2C网上商城的基本运行情况和不足并探讨其需求。同时,参考了相关网站的调查分析报告等。 用户需求分析

随着互联网的高速发展,Web应用技术也得到了迅速提高。电子商务平台便是基于这些互联技术发展起来的。而基于 B/S体系结构的网上购物系统正是电子商务的典型,系统简单却功能强大

由于客户端-服务器(C/S)应用程序可维护性差,而且对客户端计算机要求功能必须相当强大。为了解决这个缺点,浏览器-服务器(B/S)应用程序应运而生。客户端只要求安装有浏览器,就可以与服务器连接,运行整个应用程序。与此同时,由于服务端与客户端分离,应用程序的版本不管如何更新,都只会在服务器端进行,这样客户端可以节省大量资源和时间。近年来,B/S结构越来越受到企业和公司等的喜爱和重用,选择B/S结构是当前电子商务系统开发的明智之举,能充分适应市场的需求。本系统便是采用B/S结构进行开发的。

·

第 14 页

购物流程图:

·

第 15 页

3.4 系统功能结构图

·

第 16 页

4 系统设计 4.1 系统设计 系统主要包括网站前台页面和网站后台管理页面。前台页面主要负责商品的显示信息,便于用户查找各种商品以及商品信息。网站后台主要是管理员负责对后台信息的维护和管理。两者相互结合,使信息在的流通更加顺畅。 4.2 开发运行环境 硬件平台: (1)Cpu:i5 2.67GHz (2)内存:2GB 软件平台; (1)操作系统:win7 32位操作系统 (2)数据库:mysql5.5.19 (3) 浏览器:360浏览器 (4)web服务器:apache 2.2 4.3 数据库设计 本系统采用mysql数据库,系统数据库名称为ci_shop。数据库当中包涵了如下列表。 创建数据库的语句:create database ci_shop charset utf8; 商品模块: Table ci_category(商品类别表)的具体字段: 字段 属性 NULL 注释 cat_id int unsigned not null 商品类别id主键|自增 cat_name varchar(30) not null 商品类别名称 parent_id smallint unsigned not null 商品类别父id cat_desc varchar(255) not null 商品类别描述 sort_ordetinyint unsigned not null 排名依据 r unit varchar(15) not null 单位 ·

第 17 页

is_show tinyint unsigned not null 是否显示 默认显示 ci_category的建表语句如下: create table ci_category( cat_id smallint unsigned not null auto_increment primary key comment '商品类别ID', cat_name varchar(30) not null default '' comment '商品类别名称', parent_id smallint unsigned not null default 0 comment '商品类别父ID', cat_desc varchar(255) not null default '' comment '商品类别描述', sort_order tinyint not null default 50 comment '排序依据', unit varchar(15) not null default '' comment '单位', is_show tinyint not null default 1 comment '是否显示,默认显示', index pid(parent_id) )engine=MyISAM charset=utf8; table ci_goods_type(商品类型表)具体字段: 字段 属性 NULL 注释 type_id smallint unsigned not null 商品类型id type_name varchar(50) not null 商品类型名称 ci_goods_type的建表语句如下: create table ci_goods_type( type_id smallint unsigned not null auto_increment primary key comment '商品类型ID', type_name varchar(50) not null default '' comment '商品类型名称' )engine=MyISAM charset=utf8; table ci_attribute(商品属性表)的具体字段: 字段 属性 NULL 注释 attr_id int unsigned not null 主键|自增长 商品属性id attr_name varchar(50) not null 商品属性名称 type_id smallint unsigned not null 商品类型id attr_type tinyint unsigned not null 属性是否可选0(唯一)|1(单选)|2(多选) attr_input_type tinyint unsigned not null 属性录入方式0(手工)|1(列表)|2(文本域) attr_value text 属性的值 sort_order tinyint unsigned not null 属性排序依据 ·

第 18 页

ci_attribute的建表语句如下: create table ci_attribute( attr_id smallint unsigned not null auto_increment primary key comment '商品属性ID', attr_name varchar(50) not null default '' comment '商品属性名称', type_id smallint not null default 0 comment '商品属性所属类型ID', attr_type tinyint not null default 1 comment '属性是否可选 0 为唯一,1为单选,2为多选', attr_input_type tinyint not null default 1 comment '属性录入方式 0为手工录入,1为从列表中选择,2为文本域', attr_value text comment '属性的值', sort_order tinyint not null default 50 comment '属性排序依据', index type_id(type_id) )engine=MyISAM charset=utf8; table ci_goods(商品表)的具体字段: 字段 属性 NULL 注释 goods_id int unsigned not null 商品id goods_sn varchar(30) not null 商品货号 goods_name varchar(100) not null 商品名称 goods_brief varchar(255) not null 商品简单描述 goods_desc text not null 商品详情 cat_id smallint unsigned not null 商品所属类别id brand_id smallint unsigned not null 商品所属品牌id market_price decimal(10,2) not null 市场价 shop_price decimal(10,2) not null 本店价格 promote_price decimal(10,2) not null 促销价格 promote_start_tint unsigned not null 促销起始时间 ime promote_end_timint unsigned not null 促销戒指时间 e goods_img varchar(50) not null 商品图片 goods_thumb varchar(50) not null 商品缩略图 goods_number smallint unsigned not null 商品库存 click_count int unsigned not null 点击次数 type_id smallint unsigned not null 商品类型id is_promote tinyint unsigned not null 是否促销 0|1 is_best tinyint unsigned not null 是否为精品 is_new tinyint unsigned not null 是否为新品 is_hot tinyint unsigned not null 是否热卖 ·

第 19 页

is_onsale tinyint unsigned not null 是否上架 add_time int unsigned not null 添加时间 table ci_goods的建表语句如下: create table ci_goods( goods_id int unsigned not null auto_increment primary key comment '商品ID', goods_sn varchar(30) not null default '' comment '商品货号', goods_name varchar(100) not null default '' comment '商品名称', goods_brief varchar(255) not null default '' comment '商品简单描述', goods_desc text comment '商品详情', cat_id smallint unsigned not null default 0 comment '商品所属类别ID', brand_id smallint unsigned not null default 0 comment '商品所属品牌ID', market_price decimal(10,2) not null default 0 comment '市场价', shop_price decimal(10,2) not null default 0 comment '本店价格', promote_price decimal(10,2) not null default 0 comment '促销价格', promote_start_time int unsigned not null default 0 comment '促销起始时间', promote_end_time int unsigned not null default 0 comment '促销截止时间', goods_img varchar(50) not null default '' comment '商品图片', goods_thumb varchar(50) not null default '' comment '商品缩略图', goods_number smallint unsigned not null default 0 comment '商品库存', click_count int unsigned not null default 0 comment '点击次数', type_id smallint unsigned not null default 0 comment '商品类型ID', is_promote tinyint unsigned not null default 0 comment '是否促销,默认为0不促销', is_best tinyint unsigned not null default 0 comment '是否精品,默认为0', is_new tinyint unsigned not null default 0 comment '是否新品,默认为0', is_hot tinyint unsigned not null default 0 comment '是否热卖,默认为0', is_onsale tinyint unsigned not null default 1 comment '是否上架,默认为1', add_time int unsigned not null default 0 comment '添加时间', index cat_id(cat_id), index brand_id(brand_id), index type_id(type_id) )engine=MyISAM charset=utf8; ·

第 20 页

用户模块: table ci_user(用户表)的具体字段: 字段 属性 NULL 注释 user_id int unsigned not null 主键|自增 用户编号 user_name varchar(50) not null 用户名 email varchar(50) not null 电子邮箱 password char(32) not null 用户密码 md5加密 reg_time int unsigned not null 用户注册时间 table ci_user 的建表语句如下: create table ci_user( user_id int unsigned not null auto_increment primary key comment '用户编号', user_name varchar(50) not null default '' comment '用户名', email varchar(50) not null default '' comment '电子邮箱', password char(32) not null default '' comment '用户密码,md5加密', reg_time int unsigned not null default 0 comment '用户注册时间' )engine=MyISAM charset=utf8; table ci_cart(购物车表)的具体字段: 字段 属性 NULL 注释 cart_id int unsigned not null 主键|自增 购物车id user_id int unsigned not null 用户id goods_id int unsigned not null 商品id goods_name varchar(100) not null 商品名称 goods_img varchar(50) not null 商品图片 goods_attr varchar(255) not null 商品属性 goods_number smallint unsigned not null 商品数量 market_price decimal(10,2) not null 市场价格 good_price decimal(10,2) not null 商品价格 subtotal decimal(10,2) not null 小计 table ci_cart 的建表语句如下: create table ci_cart( cart_id int unsigned not null auto_increment primary key comment '购物车ID', user_id int unsigned not null default 0 comment '用户ID', goods_id int unsigned not null default 0 comment '商品ID', goods_name varchar(100) not null default '' comment '商品名称', goods_img varchar(50) not null default '' comment '商品图片', ·

第 21 页

goods_attr varchar(255) not null default '' comment '商品属性', goods_number smallint unsigned not null default 1 comment '商品数量', market_price decimal(10,2) not null default 0 comment '市场价格', goods_price decimal(10,2) not null default 0 comment '成交价格', subtotal decimal(10,2) not null default 0 comment '小计' )engine=MyISAM charset=utf8; 订单模块 table ci_order(订单表) 的具体字段: 字段 属性 NULL 注释 order_id int unsigned not null 主键|自增 订单id order_sn varchar(30) not null 订单号 user_id int unsigned not null 用户id adress_id int unsigned not null 地址id order_status tinyint unsigned not null 订单状态 1|2|3|4 postscripts carchar(255) not null 订单附言 shipping_id tinyint not null 送货方式id pay_id tinyint not null 支付方式id goods_amount decimal(10,2) not null 商品总金额 order_amount decimal(10,2) not null 订单总金额 order_time intunsigned not null 下单时间 table ci_order 的建表语句如下: create table ci_order( order_id int unsigned not null auto_increment primary key comment '订单ID', order_sn varchar(30) not null default '' comment '订单号', user_id int unsigned not null default 0 comment '用户ID', address_id int unsigned not null default 0 comment '收货地址id', order_status tinyint unsigned not null default 0 comment '订单状态 1 待付款 2 待发货 3 已发货 4 已完成', postscripts varchar(255) not null default '' comment '订单附言', shipping_id tinyint not null default 0 comment '送货方式ID', pay_id tinyint not null default 0 comment '支付方式ID', goods_amount decimal(10,2) not null default 0 comment '商品总金额', order_amount decimal(10,2) not null default 0 comment '订单总金额', ·

第 22 页

order_time int unsigned not null default 0 comment '下单时间', index user_id(user_id), index address_id(address_id), index pay_id(pay_id), index shipping_id(shipping_id) )engine=MyISAM charset=utf8; table ci_admin(后台管理员表)的具体字段: 字段 属性 NULL 注释 admin_id smallint unsigned not null 主键|自增 管理员id admin_name varchar(30) not null 管理员名称 password char(32) not null 管理员密码 email varchar(50) not null 管理员邮箱 add_time int unsigned not null 添加时间 table ci_admin 的建表语句如下: create table ci_admin( admin_id smallint unsigned not null auto_increment primary key comment '管理员编号', admin_name varchar(30) not null default '' comment '管理员名称', password char(32) not null default '' comment '管理员密码', email varchar(50) not null default '' comment '管理员邮箱', add_time int unsigned not null default 0 comment '添加时间' )engine=MyISAM charset=utf8; ·

第 23 页

5 系统的详细设计 5.1 网站的前台设计 5.1.1 前台总体框架 网站前台部分主要提供给用户使用,是系统对外的窗口。主要包括用户注册、登陆、商品浏览,购物车管理等几个 部分。 (1)模块功能介绍 用户管理:注册新用户、登陆、修改个人资料。 商品浏览:显示商品,在商品显示界面,可以把商品加入购物车。 购物车:添加商品到购物车、购物车休息修改、下订单。 订单模块:个人订单列表、订单详细信息的显示。 (2)前台文件构架: 网站首页(index.php) 网站头部导航(header.html) 网站菜单导航(menu.html) 商 品 展 示 网站底部导航(footer.html) 用户注册(register..html) 购物车页面 浏览商品 用户登录 (login..html) 修改、删除商品 加入到购物车 · 第 24 页

5.1.2 用户管理模块

网站前台首页的运行结果:

·

第 25 页

网站前台注册页面运行结果:

注册页面重要代码:

#显示注册页面

public function register(){

$this->load->view('register.html'); }

#显示登录页面

public function login(){

$this->load->view('login.html'); }

public function do_register(){ #设置验证规则

$this->form_validation->set_rules('username','用户','required');

$this->form_validation->set_rules('password','密','required|min_length[6]|max_length[16]|md5');

$this->form_validation->set_rules('repassword','重复密','required|matches[password]');

$this->form_validation->set_rules('email','电子邮','required|valid_email');

//获取表单数据

·

第 26 页

名码码箱

$captcha = strtolower($this->input->post('code'));

//获取session中的数据

$code = strtolower($this->session->userdata('code'));

if ($captcha === $code){

if ($this->form_validation->run() == false) { # 未通过

$data['message'] = validation_errors(); $data['url'] = site_url('user/login'); $data['wait'] = 3;

$this->load->view('message.html',$data); } else {

# 通过,注册

$data['user_name'] = $this->input->post('username',true);

$data['password'] = $this->input->post('password',true); $data['email'] = $this->input->post('email',true); $data['reg_time'] = time();

if ($this->user_model->add_user($data)) { # 注册成功

$data['message'] = '注册成功';

$data['url'] = site_url('user/login'); $data['wait'] = 3;

$this->load->view('message.html',$data); } else {

# 注册失败

$data['message'] = '注册失败';

$data['url'] = site_url('user/register'); $data['wait'] = 3;

$this->load->view('message.html',$data); } } }

·

第 27 页

网站前台登录页面:

登录页面重要代码:

#登录动作

public function signin(){ #验证 省略

//获取表单数据

$captcha = strtolower($this->input->post('code'));

//获取session中的数据

$code = strtolower($this->session->userdata('code'));

$username = $this->input->post('username'); $password = $this->input->post('password');

if ($captcha === $code){ if ($user = $this->user_model->get_user($username,$password)) {

·

#成功,将用户信息保存至session

$this->session->set_userdata('user',$user); redirect('home/index'); } else { # error

第 28 页

$data['message'] = '注册失败';

$data['url'] = site_url('user/login'); $data['wait'] = 3;

$this->load->view('message.html',$data); }

}else{

$data['message'] = '验证码错误';

$data['url'] = site_url('user/login'); $data['wait'] = 3;

$this->load->view('message.html',$data); } }

5.1.3 商品浏览模块:

商品浏览模块部分代码:

class Goods extends Home_Controller{

public function __construct(){ parent::__construct();

$this->load->model('goods_model'); }

public function index($goods_id){

$data['goods'] = $this->goods_model->get_goods($goods_id); $this->load->view('goods.html',$data); } }

·

第 29 页

5.1.4 购物车模块:

购物车模块重要代码:

public function add(){ #获取表单数据

$data['id'] = $this->input->post('goods_id'); $data['name'] = $this->input->post('goods_name'); // $data['name'] = 'aaa';

$data['qty'] = $this->input->post('goods_nums'); $data['price'] = $this->input->post('shop_price');

#在插入之前,需要判断即将要加入的商品是否已经存在于购物车中 $carts = $this->cart->contents(); foreach ($carts as $v) {

if ($v['id'] == $data['id']){ $data['qty'] += $v['qty']; } }

if ($this->cart->insert($data)) { # ok

// echo 'ok';

redirect('cart/show'); } else { # error

echo 'error'; } }

·

第 30 页

5.2 后台部分 5.2.1 后台总体框架 网站后台式前台功能实现的基础,只能由管理员进行维护和使用,主要包括后台管理员身份的认证,商品属性,商品类型,商品信息的添加,修改以及删除功能。主要模块如下: 管理员身份认证:为合法用户提供一个后台入口。 商品类型信息的添加:添加商品的类型,分别父类与子类。 商品属性及品牌信息的添加:对商品的属性及品牌信息进行详细描述。 商品管理模块:商品的详细描述,可以多商品进行增删改动作。 后台文件结构如下: 后台首页(index.php) 后 台 登 陆界 面 后 台头部导航( top.html) 添加商品 goods_add.html ·

(login.html) 后台左部导航(menu.html) 后台中间导航(main.html) 商 品 管 理 品牌分类管理 (brand_list.html) 商品类型管理 (goods_stype_list.html) 属性值管理 (attr_list.html) 第 31 页

5.2.2 管理员登陆

登陆界面如下:

在地址栏中输入后台登录地址,将转到管理员登录页面。该页面的功能是对管理员身份验证,用户输入用户名和密码后单击“登录”按键,系统将判断用户名和密码的有效性,如果通过验证则转到后台首页,反之则提示错误。管理员登录页面的运行。

5.2.3 商品管理 (1) 添加商品:

单击导航区的“添加新商品”超链接,系统将打开添加商品页面,该页面主要用于将商品信息添加到数据库表中,以提供前台商品展示。运行结果图如下:

vv

·

第 32 页

(2) 商品列表:

点击导航区的“商品列表”超链接,会出现所有商品的信息,该页面主要对商品信息进行更改,删除商品,运行结果如下图所示:

(3) 增加商品分类:

该模块用来对新增商品种类的录入,操作界面如下图所示:

(4) 增加商品品牌:

该模块用来对新增商品种类的录入,操作界面如下图所示:

· 第 33 页

6 测 试 报 告

一 内容检查

1. 检查整个页面的布局,检查是否完整; 2. 检查有无被覆盖的文字或其他显示对象; 3. 检查有无超出边界范围的控件;

4. 通读页面上所有文字,检查有无错字、漏字、拼写错误; 5. 在需要大量重复测试的页面,布局、显示方面只需要测一次;

二 链接检查

1. 该页面是否正常下载并显示;

2. 页面上是否页面上所有的对象都可加载;

3. 页面加载的时间能否可接受吗,如果时间太长,请记录;

4. 检查页面上的所有连接,检查连接是否可工作,连接到的页面正确性; 5. 每个页面的加载霎时间是配置测试的责任,但如果发现不正常,可记录。

三 易用性测试

1. 所使用的语言是否明白易懂;

2. 命令、提示、信息是否具有协调的含义; 3. 用户是否总是可以知道自己所处的位置; 4. 用户是否总是可以知道系统当前的状态; 5. 导航是否方便; 6. 操作是否方便;

7. 输入域上必填的域是否有特别的提示; 8. 只要可能的话,系统应提供缺省值;

9. 当输入错误时是否清楚地表示出错误的信息等一切认为可以不方便使用而可进一步改进的地方。

四 功能检查

检查页面上是否有功能缺漏,典型的功能是: 1. 查询/显示功能;

2. 输入/修改/删除功能; 3. 注册登记/登录功能; 4. 购物/管理功能。

对每个功能,要求测试以下方面:

·

第 34 页

1. 检查输入域,包括有效输入和无效输入; 2. 选择不同的设置;

3. 检查功能是否正确实现; 4. 检查输出是否正常; 5. 检查所有功能/业务流程。

五 容错性测试

容错性测试和功能测试的一部分,可以检查系统对合法输入的处理能力,即检查在正常情况下功能是否能够实现,即为功能测试。检查系统对非法输入的处理能力,即检查在非正常情况下系统是否能够正确地处理,即为容错性测试。其主要检查:

1. 用户输入出错时系统是否能够识别。

2. 系统是否能够处理所发生的错误而不会使功能失效。

3. 系统是否能够给用户以提示,说明发生的错误。 对每个功能,要求测试以下方面:

(1) 检查输入域,包括有效输入和无效输入; (2)选择不同的设置;

(3) 检查功能是否正确实现; (4) 检查输出是否正常; (5) 检查所有功能/业务流程

·

第 35 页

7 总 结

经过一段时间的努力,我终于完成了网上商城网站系统,基本实现了题目 的基本要求。但是由于经验不足,对商品订单的实现功能,还没有完善,这算是一个缺陷与遗憾。不过我们一定会努力学习,尽早实现该模块功能。总的来说,在做这个毕业设计的过程中,我们查阅了大量关于网上销售的相关资料,切实地按照软件工程的步骤,从需求分析,概要设计,详细设计,数据库设计,再到编码,调试运行,测试等步骤。从中我们学到了很多东西,对我们来说,无论是理论还是实践上都是一个较大幅度的提高,可以说是理论到实践的一个飞跃。我们还了解了软件开发的大体过程,在当今竞争激烈的社会中只有学到本领才能有立足之地,通过这次综合实验也使我们知道作软件开发的辛苦,首先要有足够的耐心,要勇于面对密密麻麻的代码,无数遍的调试,和无数遍的修改,但是,当你调试成功时,你就会感到这些努力的意义,成功的喜悦。软件开发,还要注意借鉴,查看已有的例子的代码,这样可以节省大量的时间,同时也实现了代码重用。此外,我知道了基础课的重要,要学好一门编程语言,一定要动手,实践是最好的方法。

总的来说,对我个人而言,这次毕业设计的确提高了我自己的动手能力,让我认识到了自己的不足,同时多亏了在开发网站的过程中老师的指导以及同学们给予的帮助,使我顺利地完成了毕业设计,在此我对你们表示衷心的感谢!

参 考 文 献

[1] 宋尚平, 李兴保. PHP模板引擎Smarty的安装配置及应用实现[J]. 现代教育技术, 2007 .

[2] 邹天思, 孙鹏. PHP从入门到精通[M]. 北京: 清华大学出版社, 2008. [3] Michael kofler. MySQL 5权威指南[M]. 北京: 人民邮电出版社, 2006. [4] 潘凯华, 邹天思. PHP开发实战宝典[M]. 北京: 清华大学出版社, 2010. [5] W.Jason Gilmore. PHP与MySQL5程序设计[M]. 人民邮电出版社, 2007. [6] 仝戈, 张武装. Smarty在基于MVC框架的Web应用程序开发中的应用[M]. 科技信息, 2009.

[7] 明日科技. PHP函数参考大全[M]. 北京:人民邮电出版社, 2007.

[8] 赵鹤芹. 设计动态网站的最佳方案:Apache+PHP+MySQL[J]. 计算机工程

·

第 36 页

与设计出版社, 2007.

[9] 陈湘扬, 陈国益. PHP5+MySQL网页系统开发设计[M]. 北京:电子工业出版社, 2007.

[10] Elisabeth Freeman, Eric Freeman. Head First HTML with CSS and XHTML[M], O’Reilly Media, Inc, 2005.

· 第 37 页

因篇幅问题不能全部显示,请点此查看更多更全内容