基于php技术的电子商务系统毕业论文设计
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
编 号: 审定成绩: XX大学XX学院 毕业设计(论文) 设计(论文)题目: 基于PHP技术得分电子商务系统开发 单 位(系别) : 学 生 姓 名 : 专 业 : 班 级 : 学 号 : 指 导 教 师 : 答辩组 负责人 : 填表时间: 2013年06月 摘 要 本课题主要基于电子商务的基本原理,运用PHP开发技术搭建一个动态的网上商城的电子商务网站。它是在Windows系统环境下,以Mysql数据库开发平台,Apache网络信息服务器,用PHP技术开发的网上电子商务系统。本系统分为前台与后台两部分组成,前台主要针对消费者,主要包括商品展示、用户注册、购物车管理、商品查询、个人账户管理等功能模块;后台由管理员使用,主要包括商品管理、订单管理、信息管理等功能模块。通过这些功能的实现,给商家提供一个动态、交互式、具有商品提供、系统管理等功能的电子商务平台。 关键字:电子商务,网络购物,数据库开发,PHP开发技术 ABSTRACT The Design of Online Shopping System This issue is mainly based on the keystone of e-commerce, using PHP development technologies which build a dynamic e-commerce web site. It is the online shopping system, in the Windows system environment,based on the Mysql database development and Apache Internet Information Server by the PHP development technologies. The system is divided into two parts :front and back. Front part is for the consumers,mainly including product display, member registration, shopping cart management, product collection management, order management modules,etc; back part is used by the administrator, including merchandise management, purchase management, order management, system management,etc. The implementation of these functions provides a dynamic and interactive e-commerce platform with the functions of providing products and system management. Key words: e-commerce; online shopping; database development;PHP 目 录 第1章 引 言 ...................................................... 1 1.1电子商务系统概述 ................................................ 1 1.1.1电子商务的发展 ................................................ 1 1.1.2电子商务的现状 ................................................ 2 1.2开发背景及开发意义 .............................................. 2 1.2.1系统开发的背景 ................................................ 2 1.2.2系统开发的意义 ................................................ 2 第2章 相关技术综述 ................................................ 3 2.1 PHP技术 ........................................................ 3 2.2 数据库技术(MySQL) ............................................ 3 2.3 Apache技术 ..................................................... 3 2.4系统开发技术架构和系统开发环境概述 .............................. 3 第3章.系统可行性分析 ............................................. 5 3.1 技术可行性分析 ................................................. 5 3.2 操作可行性分析 ................................................. 5 3.3 经济可行性分析 ................................................. 5 第4章 需求分析 ................................................... 6 4.1 需求分析 ....................................................... 6 4.2 系统的开发设计思想 ............................................. 7 第5章 概要设计 ................................................... 8 5.1 总体方案设计 .................................................. 8 5.1.1系统设计的总体原则 ............................................ 8 5.1.2划分子系统 .................................................... 8 5.2 系统结构总体设计,如下图所示 ................................... 8 5.3系统设计的特点 .................................................. 9 5.4购物流程图 ...................................................... 9 第6章 详细设计 .................................................. 10 6.1 系统的功能分析 ................................................ 10 6.2 系统功能模块的设计 ............................................ 10 6.3 系统的流程分析 ................................................ 11 6.3.1前台购物流程 ................................................. 11 6.3.2注册功能流程 ................................................. 11 6.3.3商品搜索流程 ................................................. 12 6.3.4用户登录流程 ................................................. 13 6.3.5商品管理流程 ................................................. 13 6.3.6购物车流程 ................................................... 14 6.3.7订单流程 ..................................................... 15 第7章 系统具体功能的实现 ........................................ 16 7.1系统数据库表的设计 ............................................. 16 7.2总体说明 ....................................................... 18 7.2.1目录结构说明 ................................................. 18 7.2.2功能页面结构 ................................................. 18 7.2.3主要功能流程 ................................................. 19 7.3各具体功能的实现 ............................................... 19 7.3.1数据库的连接 ................................................. 19 7.3.2用户登陆模块的实现 ........................................... 20 7.3.3 商品搜索模块的实现 .......................................... 24 7.3.4购物车模块 ................................................... 26 7.3.5订单模块 ..................................................... 27 7.3.6后台管理模块的实现 ........................................... 32 第8章 系统测试及难点分析 ........................................ 35 8.1系统测试 ....................................................... 35 8.1.1系统运行环境的搭建 ........................................... 35 8.1.2系统测试结果 ................................................. 35 8.2系统开发中存在的问题及解决方案 ................................. 35 8.2.1系统整体设计中的出现的问题及解决方案 ......................... 35 8.2.2开发功能模块时遇到的问题及解决方案 ........................... 35 总 结 ............................................................. 37 致 谢 ............................................................. 38 参考文献 .......................................................... 39 第1章 引 言 当前,网络正在以一种前所未有的冲击力影响着人们的生活。网络的诞生和发展,颠覆了传统的信息传播方式,打破了地域和空间的壁垒,极大地丰富了人类的生活,给人们带来新的机遇和挑战。 2013年1月,中国互联网络信息中心(CNNIC)在北京发布了“第三十一次中国互联网络发展状况统计报告”。报告显示,截至2012年12月31日,我国上网用户总数达到5.64亿人。截至2012年12月底,我国网络购物用户规模为2.42亿,网民使用网络购物的比例提升至42.9%。70.6%的网民选择通过电脑上网,仅次于美国。 2012年,我国网络购物市场交易金额达到12594亿元,较2011年增长66.5%。截至2012年底,中小企业中,使用计算机进行网络办公的比例为91.3%,固定宽带普及率为71%,开展在线销售,在线采购的比例分别为25.3%和26.5%,利用互联网开展营销推广活动的比例为23%。截至2012年12月,我国网络购物用户规模达到2.42亿人,网络购物使用率提升至42.9%。与2011年相比,网购用户增长4807万人,增长率为24.8%。在网民增长速度逐步放缓的背景下,网络购物应用依然呈现迅猛的增长势头 在互联网服务方面,电子邮件、搜索引擎、在线交易平台、网上银行、网络游戏、网络广告等服务业务正在快速发展。 本次毕业设计的任务是,构建一个基于PHP技术的电子商务系统,为此,我主要参考学习了京东商城的设计模式,设计了自己的电子商务系统。 1.1电子商务系统概述 1.1.1电子商务的发展 电子商务是伴随着信息经济的高速发展而产生的一个较新的概念,是一种新型的商业运营模式。可以概括为:电子商务=Web(服务器)+IT(信息技术)+企业业务。是在网络环境下,基于浏览器/服务器应用方式,实现消费者的网上购物、商户之间的网上交易和在线电子支付的一种新型的商业运营模式。由于减少了中间环节,消除运输成本和实体店经营费用,电子商务迅速发展,使得足不出户的购物模式迅速普及,极大地推动了经济发展。本系统属于典型的企业与消费者之间 (B2C)类型的电子商务系统。 1.1.2电子商务的现状 当前,我国电子商务市场交易额稳定增长。未来3年,仍是我国电子商务投资规模持续增长和爆发的时期,我国电子商务投资市场将迎来新一轮的发展高潮。一方面,国家“十二五”电子商务发展规划的颁布标志着政府推动电子商务的总体布局已经形成;另一方面,电子商务在企业的应用成效以及对经济、社会发展的推动作用日益明显。 1.2开发背景及开发意义 1.2.1系统开发的背景 21世纪的今天,网络在人们生活中已经日益盛行,越来越多人已经离不开网络。人们已经不再满足于了解最新信息、查找资料等一些传统的网络使用方式,而是过渡到娱乐、购物等新兴的网民生活。网上购物,成了当今广大群众的时尚。而商家,也逐渐重视起网络的作用,充分利用起网络的低成本、高效性来宣传企业形象和销售商品。因此,为了方便广大群众,满足商家的需求,我们专门构建网上商城系统。 1.2.2系统开发的意义 长期以来,大部分的销售活动,都是面对面的销售,如:店铺销售、广交会、上门推销等。这些销售活动,都会受到地域、时间、环境等方面的影响,从而给企业、公司等的销售管理带来极大的不便。而且信息的人工管理,也存在诸多缺点。而网上商城,正好能全面解决这样的问题。产品生产-销售-客户订单管理系统软件为企业、公司等的销售管理带来了极大的方便。产品生产-销售-客户订单管理系统能够为用户提供可靠的信息储存和快捷的信息处理手段。作为计算机应用的一部分,使用计算机对企业、公司的产品销售信息进行管理,具有手工管理所无法比拟的优点。因此,开发这样一套管理系统成为很有必要的事情,它能够具体化、合理化的管理单位的销售信息情况,用结构化的思维方式去了解计算机的工作原理。 第2章 相关技术综述 2.1 PHP技术 PHP,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种在服务器端执行的嵌入HTML文档的脚本语言。与同样是嵌入HTML文档的脚本语言JavaScript相比,PHP在服务器端执行,充分利用了服务器的性能;PHP执行引擎还会将用户经常访问的PHP程序驻留在内存中,其他用户再一次访问这个程序时就不需要重新编译程序了,只要直接执行内存中的代码就可以了,极大地提高了效率。 2.2 数据库技术(MySQL) MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,是一个真正的多用户,多线程的SQL数据库服务器。它由一个服务器守护程序MYSQLd和不同的客户程序和库组成。由于其源码的开放性及稳定性,且与网站流行编程语言PHP的完美结合,获得了广泛应用。 2.3 Apache技术 Apache HTTP Server(简称Apache)是一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。) 2.4系统开发技术架构和系统开发环境概述 (一)系统开发技术架构概述 系统的建设关键在于其所使用的架构,本系统是基于Web而设计的,传统的C/S(Client/Server,即客户机/服务器模式)架构虽然客户端响应比较快,但在开发技术、资金需求、系统维护和扩展等发面都有一定的限制,综合考虑该设计的实际需求与开发条件的限制,得出C/S架构并不能满足系统要求。B/S(Browser/Server,即浏览器/服务器模式)架构是目前网络系统应用的主流,这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。在B/S体系架构系统中,用浏览器作为用户统一的客户端软件,实现了客户端零维护,易于系统扩展,降低了资金的投入。 (二)系统开发环境概述 传统习惯于将Apache、MySQL、PHP架设在Linux系统下,但是,我选择的是Windows系统。其优点是易用,界面友好,软件丰富,操作方面。 我使用软件开发环境如下: 1、服务器端: 操作系统:Windows 7。 服务器:Apache 2.2。 PHP软件:PHP 5.3.1。 数据库:MySQL 5.1.41。 MySQL图形化管理软件:phpMyAdmin 3.2.4。 开发工具:Dreamweaver CS5。 浏览器:IE 8.0。 2. 客户端: 浏览器:IE 8.0。 第3章.系统可行性分析 3.1 技术可行性分析 本系统采用PHP+Mysql+Apache进行开发,其中前台用HTML嵌入PHP进行页面开发和管理用户界面,提示信息完善,界面友好有亲和力;后台采用Mysql数据库开发和管理数据库,部分关键内容采用事务处理机制,具有很强的错误处理能力。本系统的开发环境使用现在特别流行的开源Apache服务器,使用方便、运行稳定、安全可靠。综上所述,本系统在技术方面是可行的。 3.2 操作可行性分析 本系统采用B/S架构,对销售信息进行网上管理,操作简单易懂,对用户来说不需要高深的计算机专业知识,只要管理员能够懂得使用网络,就可以对商城进行使用和维护。 3.3 经济可行性分析 由于本系统属于模拟的网上商城系统,整个系统并不算太大,因此开发成本不算太高。整个开发过程由两个人参与,只需要两台PC机和上述的各种软件,就可以实现全部的开发任务。由于PC机是我们各自原有的,而且无需专门升级硬件;而各种软件,又是能够在网上免费下载的,因此,整个开发成本可以说是非常的低廉,这也为我们以后进一步完善网站提供了非常大的方便。在使用成本上,用户只需要拥有一台能够连接到国际互联网上的计算机,通过注册就可以在世界的任何一个角落使用网站的全部功能和服务。而且对计算机的硬件的需求也不是很高,软件方面也没有特殊的需求,易于广大用的访问与使用。因此,从经济可行性分析来看,这个网站体现了经济实惠,但是功能强大的特点。 第4章 需求分析 4.1 需求分析 基于PHP技术的网上商城购物系统,分前台功能和后台管理功能: (1)前台部分由用户使用,主要包括用户管理(用户登录、注册),商品浏览、购物车管理,个人账户管理。 (2)后台部分由管理员使用,主要包括管理员身份验证,商品管理,订单管理,用户管理,系统管理。 前台商品模块主要有以下一些: 1.用户注册; 2.商品浏览; 3.商品订购; 4.购物车; 5.生成订单; 6.订单查询; 后台管理主要的模块有以下: 1、用户管理1.1查看用户 1.2删除用户 2、商品管理 2.1添加商品 2.2删除商品 2.3查找商品 2.4修改商品 3、订单管理 3.1查看订单 3.2修改订单 3.3删除订单 4、新闻管理 4.1新闻添加 4.2新闻修改 由以上可以得出该电子商务系统需要具备的功能如下: 1. 能够完成用户基本信息的录入(包括注册和登录)以及用户基本信息的个人前台与后台管理。 2. 能够完成管理员对网站的商品管理(商品的添加、删除、修改、查询)和网站信息管理(新闻添加、修改删除、公告设置),以及管理员身份验证的功能。 3. 能过商品的名称,对商品进行搜索。 4. 能够通过查看购物车对所选商品进行确定、挑选,通过定单查询对支付费用进行确定。 4.2 系统的开发设计思想 电子商务系统主要是前台操作和后台管理。前台操作是指用户登录到本系统,可以进行用户注册,通过网站的商品展示,选择自己需要的商品,加入购物车,进行购买。后台管理是管理员对本网站进行维护,通过商品操作(商品的添加、删减、查询、修改),用户管理等功能达到对网站的管理。 网上电子商务系统的特点是客户和电子商品的信息量都很大,管理员需要整理的信息很多。通过分析,所要设计的分类信息网站所要实现的功能如下: 界面设计简洁、信息准确,功能使用方便、入口快捷,数据存储安全可靠,系统最大限度地实现了易维护性和易操作性。 利用系统的自适应性全面展示系统中所有商品信息。实现各搜索功能,包括准确搜索、模糊搜索和高级搜索。后台可以向前台发布公告信息,可以管理信息。 系统运行稳定、安全可靠。第5章 概要设计 5.1 总体方案设计 5.1.1系统设计的总体原则 简单性:在实现系统相关功能的同时,尽可能让系统的操作简单易懂,并且能便于管理员进行维护。 实用性:该系统能完成电子商品展示盒管理员管理的基本信息,具有良好的可操作性和实用性。 5.1.2划分子系统 基于电子商务理论与PHP技术的网上商城购物系统,分前台功能和后台管理功能: (1)前台部分由用户使用,主要包括用户管理(用户登录、注册),商品浏览、购物车管理,个人账户管理。 (2)后台部分由管理员使用,主要包括管理员身份验证,商品管理,订单管理,会员管理,系统管理。 5.2 系统结构总体设计,如下图所示 电子商务系统 前台 后台 用户管理商品搜索购物车个人账户管理 身份验证商品管理订单管理信息管理 图5-2系统结构总体设计图 5.3系统设计的特点 我所设计和开发的电子商务系统是经过长时间的调查和分析才开始具体实施的,它的主要特点是改变了过去人们购物只能单一的通过实体商店才能达到的结果,借助于Internet互联网广泛应用技术,达到资源共享,打破购物的局限性,提高工作效率,方便用户足不出户就能完成网上电子商务交易,使整个电子商务交易过程简单、易行。 5.4购物流程图 浏览网页 选择要买的商品 是 否 判断是否注册用户 加入购物车 继续购物 交易完成 图5-4购物流程图支付成功 确认订购 确认订购 货到付款 网上支付 选择付款方式 确认或修改收货人信息 登录 注册 进入相关的网上支付平台 第6章 详细设计 6.1 系统的功能分析 该电商系统需要完成的一些具体功能,分析如下: (1)用户管理:能够完成用户基本信息录入的注册和用户基本信息的修改。 (2)管理员管理:能够完成管理员对网站的商品信息管理(商品添加、商品审查)、会员管理(会员审查)、网站信息管理(新闻添加、修改删除、公告设置)等功能。 (3)搜索功能:能过电子商品的名称进行搜索。 (4)查询功能: 能够通过查看购物车对所选商品进行确定、挑选。 6.2 系统功能模块的设计 在对该电商系统功能的分析基础上,得到本系统的功能模块图如图6-2所示。 图6-2电商系统购物模块图 用户管理 商品浏览 管理进入 商品搜索 网上购物系统 用户注册用户修改会员管理商品管理新闻管理商品名称 商品添加商品修改商品查找商品删除新闻添加新闻修改 6.3 系统的流程分析 6.3.1前台购物流程 前台购物流程示意图如图6-3-1所示。 浏览商品 选择商品 订购商品 未注册用户 已登录注册用户 未登录注册用户 登录 注册 去购物车 去收银台 提交订单 图6-3-1 前台购物流程图 6.3.2注册功能流程 注册流程示意图如图6-3-2所示。 图6-3-2 注册功能流程图 注册成功 E-mai地址有效密码长度符合2次输入密码是用户名有效? 必选项为空 注册入口 其他信息有效 注册的具体算法为: 点击主页面的用户注册选项后,会弹出一个注册信息页面,用户需要如实填写用户名,密码,等各项信息。 提交后,系统进行检测判断该用户名是否已经注册过,如果已经存在则弹出新页面,提示用户该用户名已经注册过,如果没有则进行下一步判断,用户输入的两次密码是否一致,然后依次往后判断用户所填写的各项信息是否符合要求,直到所有信息均正确无误,系统将该用户注册信息写入会员表即member并提示用户注册成功,用户登陆后,就可以进行有效的购物。 6.3.3商品搜索流程 商品搜索流程示意图如图6-3-3所示。 图6-3-3 商品搜索流程图 再搜索 查看商品 否下订单 购物车 是开始搜索 输入条件 搜索结果 商品的搜索功能使用户更加方便的进行自己所需要的商品的查询,节省时间,提高效率。用户搜索时只要输入商品的关键字就能搜索到所有相关的商品。并且能列出通过搜索得到的商品的详细信息。 商品搜索的具体算法: 首先,从session中提取商品信息进行判断,如果商品类别为空。则按商品名称进行搜索。 其次,查找出所有含有该关键字的商品信息;如果商品类别不为空,则根据商品类别和商品名称进行模糊查询,并将返回结构给集合rs。 最后,如果集合rs为空即没有符合该查询条件的商品,则返回“没有你要找的商品,请先确定商品的类别”;如果集合rs不为空则说明有符合该查询条件的商品将该商品信息取出来放到浏览页面输出。 6.3.4用户登录流程 用户登录,首先要提供一个用户登录的表单。用户登录的表单在设计时应该嵌入整体的结构当中:若用户没有登录,则在页面中显示用户登录的选项,用户登录后,则隐藏用户登录的选项而直接显示用户的基本信息。 将UserID存入session中 取得用户名和密码 查询用户是否存在 登录入口 否是核对密码 是否登录成功 图6-3-4用户登陆流程图 用户登录的具体算法: 登录的具体实现要通过一个session这样的维护客户端与服务器之间会话的全程变量来实现。 首先,用户登陆的界面会从会员信息表(member)查询用户提交的账户名和密码看是否正确,如正确,则用一个全局变量session来保存这一信息。 若用户不存在,即session中的user为空,系统就会跳转到登录页面,请用户重新登录。此时用户再次登录,系统会将用户登录的账号和密码赋给变量用户名user_name和user_pass,将其与数据库中的信息进行比较,若为真,则登录成功,用户就可以进行购物了。 6.3.5商品管理流程 商品管理流程示意图如图6-3-5所示。 返回 满意否 修改删除 添加商品 查询商品 商品管理 图6-3-5商品管理流程图 在该功能里管理员可以进行不需要的商品的删除,在这里管理员当然也可以浏览到商品的详细信息。并且比普通用户在浏览商品界面里所看到的商品信息多一个该商品在数据库中的ID。 6.3.6购物车流程 购物车具体的购物车的具体算法: 1.当用户在点击“添加到购物车”的链接时,执行如下功能:检查用户购物车类是否存在。如不存在,则建立,并注册session变量;从session中取得该用户的信息 2.确认好商品,用户在点击订购之后,系统先将该商品信息写入购物车页面,只有当用户在选择了商品数量,点击了确认按钮之后,系统才将该信息写入basket表。如果用户不选择商品数量,或者不点击确认按钮,系统就不把该商品信息写入basket表,这样就不至于造成basket表数据混乱,用户无法继续购物。 3.如果用户去收银台结账前对已经选购的商品不满意时,可以选择清空购物车,同时系统也将购物车表中的相关信息删除。用户完成选购后,可点击付款,系统只会统计用户最终选购的商品信息。购物车流程示意图如图6-3-6所示。 购物车 查看商品 满意吗? 调整商品 下订单 图6-3-6购物车流程图 6.3.7订单流程 当用户完成选购,点击去结算时,将所有basket表中属于该用户id的商品信息提出来,并合计价格,返回给用户,用户如果确定付款购买,则给用户提供一个订货单,由用户填写一些基本信息,确认之后,系统则产生一个唯一的订货单号,并将其返回给用户,以便用户日后查询,同时,系统则将该用户所选购的商品信息以及用户信息放入到订单表中。第7章 系统具体功能的实现 7.1系统数据库表的设计 在建设电子商务系统之前,需要对系统所用到的数据进行大致的分类和具体的结构设计,要做到清晰明了,且能适应系统各项功能的调用。 数据库概要设计中的核心元素是:实体、属性与联系。数据库的设计要遵循一个实体对应一个表,搞清楚该实体有哪些属性,对应有何字段,以及各实体之间有何种联系。 从实际出发进行设计,得到各表的设计如表7-1至7-5所示。 表7-1 商品信息表 字段 Hw_id Hw_name Hw_cash 字段名 商品编号 商品名称 商品价格 类型 自动编号 文本型 数值型 备注型 文本型 数值型 日期型 宽度 50 18 255 255 18 小数位 2 索引 是 可否为空 否 否 Hw_content 商品信息 Hw_pic Hw_buys Hw_date 商品图片 商品数量 商品日期 表7-2 会员信息表member 字段 User_id User_name User_pass User_adds User_mail User_tel 字段名 会员编号 会员帐号 会员密码 会员地址 类型 自动编号 文本型 文本型 文本型 宽度 50 50 255 50 50 小数位 索引 是 可否为空 否 否 会员E_Mail 文本型 会员 文本型 User_regtime User_postcode User_namec 注册时间 邮政编码 会员姓名 日期型 文本型 文本型 50 50 表7-3购物车表basket 字段 Basket_id Hw_id User_name Basket_count Basket_date Basket_check Hw_name Hw_cash Sub_number 字段名 购物车编号 商品编号 会员帐号 商品数量 购物时间 是否结帐 商品名称 商品价格 订单编号 类型 宽度 小数位 2 索引 是 是 是 可否为空 否 否 否 自动编号 自动编号 文本型 数值型 日期型 是/否 文本型 数值型 文本型 50 18 50 18 50 表7-4管理员表admin 字段 Admin_id Admin_name Admin_pass 字段名 管理员编号 管理员帐号 管理员密码 类型 宽度 小数位 索引 是 可否为空 自动编号 文本型 文本型 50 50 表7-5网站信息表system 字段 Name Mail 信箱 Tel Adds 地址 OICQ QQ MSN MSN Sitename Fax Code 字段姓名 名 类型 文本 网站名称 文本 文本 文本 数值 数值 文本 文本 文本 7.2总体说明 7.2.1目录结构说明 (1) admin 用于存储系统管理员的后台操作脚本,包括商品类别管理、商品信息管理、站内公告管理、订单管理、系统用户管理等功能; (2) pic 用来存储商品的图片资料,管理员上传的商品图片也存在这里。 (3) img 用来存储网页上的图片文件。 (4) database 用来存储系统的数据库,由于环境限制,本系统采用的是windows自带的Access数据库,所有的相关表也都放在这里。 7.2.2功能页面结构 ROOT://根目录 │ index.php 首页 │ list.php 栏目页面 │ product.php 商品页面 │ new_product.php 新品上架页面 │ hot_product.php 销售排行页面 │ sp_product.php 特价商品页面 │ search.php 搜索结果页面 │ reg.php 会员注册页面 │ login.php 会员登陆页面 │ profile.php 会员资料页面(查看兼修改) │ user.php 会员模块的控制页 │ cart.php 购物车 │ pay.php 结账(提交订单) │ order.php 查看订单 ├─admin (管理后台目录) │ ├─index.php 后台首页 │ ├─notice │ │ │index.php 公告管理 │ ├─user │ │ │index.php 会员管理 │ │ │user_fun.php 会员管理函数库 │ ├─category │ │ │index.php 分类管理 7.2.3主要功能流程 主页面 用户登陆 注册 管理进入 是否会员 资料修改 搜索物品 选购物品 会员管理 商品管理 新闻管理 广告链接 退出返回 添加到购物车 退出 结帐付款 购物成功 填写订货单 会员删除 商品添加 商品修改 新闻添加 新闻修改 广告设置 链接管理 7.3各具体功能的实现 7.3.1数据库的连接 出于安全性的考虑,我们将与数据库的连接,单独写出来并进行编译,也就是数据库连接的javabean文件,编译出来的.class文件是无法被修改的只能通过源文件进行修改,我们在PHP页面中只用直接调用改方法即可,在本系统中我们将其命名为为.faq 存放在class/ckstudio/db下设其id为mdb,我们在需要对数据库进行操作的时候只需在页面上添加这样一个标签id="mdb" class="ckstudio.db.faq" scope="page"/>即可。连接关键代码如下:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");定义驱动类型
String strDirPath=application.getRealPath(request.getRequestURI());
strDirPath=strDirPath.substring(0,strDirPath.lastIndexOf('\\'))+"\\";得到数据库的存放路径 String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)}; DBQ="+strDirPath+"db.mdb";定义连接地址
Connection conn = DriverManager.getConnection(url);连接数据库 Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);返回操作结果
7.3.2用户登陆模块的实现
用户登陆模块是阻止非法用户登陆的一道防线,通过用户登录模块可有效保护后台数据库的安全性。当用户需要商品订购时,首先要进入的就是身份验证界面,只有在密码正确的情况下方可进行之后的购物,如密码输入错误,则不能进行购物。
(1)用户注册
需要购买商品,首先要注册成为用户,如图所示
部分关键代码如下: public function Join(){ }
public function doJoin(){
$dao=D("Members");
if ($account=$dao->create()){ $this->display();
$id=$dao->add(); $this->account=$account;
$sendto=array($account['email']); if(GetValue('is_welcome_email')==1){
$welcome=GetValue(is_welcome_email); if($welcome){
$welcome=str_replace(array('{name}','{email}','{time}','{url}','{siten
ame}','{adminemail}'),array($account['lastname']."
".$account['firstname'],$account['email'],toDate($list['createdate']),GetValue('siteurl'),GetValue('sitename'),GetValue('email')),$welcome); }
(2)用户登录
用户登录页面主要用来接收用户输入的用户名和密码,并验证用户的信息。 会员登录窗口的运行结果,如图所示
} else{ }
$this->error ( $dao->getError () ); }
Session::set('memberID',$id); if($this->isAjax()){ }
$this->success('do join success'); redirect ($_SESSION['back']);
$this->redirect ( 'MemberIndex/index' ); }elseif (isset($_SESSION['back'])){ }else{
}
sendmail($sendto,
'Welcome
to
'.GetValue('sitename'),GetValue('welcome_email_content'));
部分关键代码如下[3]: public function Login() { }
public function ForgotPWD() {
$this->account=$list;
$dao=D("Members");
$list=$dao->where("email ='".$_POST['email']."'")->find(); if (!$list){ }
$this->error ( "email error, do not have this account!");
if(isset($_POST['email'])){ if ($this->memberID > 0) { }
$this->display();
$this->redirect ( 'MemberIndex/index' );
$sendto=array($_POST['email']);
$body=$this->fetch("MailTpl:forgotpwd");
sendmail($sendto, GetValue('sitename')."- New Password",$body); $this->jumpUrl=U('Index/index');
$this->success ( "Your password has been sent,Please check your
email!");
}
$this->display();
}
public function doLogin(){ $this->waitSecond=3; if ($this->memberID>0){ $this->redirect ( 'MemberIndex/index' );
}
$dao=D("Members");
//临时密码
$list=$dao->where("email ='".$_POST['email']."'")->find(); if (!$list){ $this->error ( "email error, do not have this account!"); } else{ if ((md5($_POST['password'])!=$list['password']) ($_POST['password']!=$list['password'])){
$this->error ( "Password error!");
} else{ Session::set('memberID',$list['id']);
//将会员帐号的sessionid修改为现在的sessionid; if($list['id']>0){ $cartModel=D('Cart');
$data['session_id']=Session::get('sessionID'); &&
}
}
}
//$data['uid']=$list['id']; $cartModel->where
(
"uid='".$list['id']."'
or
session_id='" . Session::get('sessionID') . "'")->data ($data)->save();
$data['lastlogindate']=time(); $data['lastloginip']=get_client_ip();
$dao->where("id ='".$list['id']."'")->save($data); self::$Model=D("Shippingaddress");
$memberShippingAddress=self::$Model->where("id=".$list['id'])->find();
}
if (!$memberShippingAddress && $this->isAjax()) { }
$this->jumpUrl=U('MemberIndex/index'); $this->success("Login Successful!");
$this->ajaxReturn('','noaddress',0); redirect ($_SESSION['back']);
}elseif (isset($_SESSION['back']) && !$this->isAjax()){
7.3.3 商品搜索模块的实现
用户可以通过设置详细查询信息查找所需商品。网上商城作为一个与消费者互动的购物系统,怎样使用户以最快的速度找到自己希望买到的物品,搜索引擎是关键。本电子商城系统也做了这样一个模块,以供用户进行一些模糊查找,用户不必输入全部名称,只需输入关键词,系统就可以将符合该查询条件的商品信息以反馈给用户。 该搜索功能如图所示
部分关键代码如下[3]: public function index(){
if (!get_magic_quotes_gpc()) { }
$sql=array();
if(!empty($key) && !empty($type)){
switch (true){
case $type=='name':
$sql['name']=array('like',"%$key%");//名称模糊查找 break;
$sql['id']=intval($key);//名称模糊查找 break;
$sql['brand']=$key;//品牌查找 break;
$sql['cateid']=$key;//类别查找 break;
$sql['price']=array('lt',$key);//价格小于 break;
$key = addslashes($key); $type=$_REQUEST['type']; $key=$_REQUEST['key'];
case $type=='id':
case $type=='brand':
case $type=='cateid':
case $type=='pricelt':
}
}
}
case $type=='pricegt':
$sql['price']=array('gt',$key);//价格大于 break;
}elseif(!empty($key)){
$sql['name']=array('like',"%$key%");//名称模糊查找 $sql['serial']=array('like',"%$key%");//名称模糊查找 $sql['id']=intval($key); $sql['_logic']='or';
$map['isdown']=array('neq','1'); parent::$Model=D("Products"); if(isset($_REQUEST['key'])){ }
$this->disp_text="Search";
parent::$Model->_list($this->view,$sql,'sort',false); $this->display();
$_SESSION['map']=$sql; $sql=$_SESSION['map']; }elseif(isset($_REQUEST['map'])){
7.3.4购物车模块
购物车是顾客在购物过程中用来存放所购商品信息的一个临时的数据缓冲区。因此购物车必须贯穿于购物的整个周期,即在顾客登录网站时自动创建空的信息,在购物过中不断增减变化,在每次结算并生成订单后清空。用户登陆成功以后,如果找到了需要购买的商品,在点击物品下方的订购以后,系统会弹出一个新的页面,显示该物品已经添加进购物车,然后用户需要选择定购的数量。页面效果图7-3-4所示。
用户在浏览商品时,对需要购买的商品,点击“购买”把商品加入购物车,此时页面便自动跳转到购物车列表。 部分关键代码如下: function disp() { 列表 总重量 总数量 } 7.3.5订单模块
用户对商品满意,修改好购物车中的商品数量后点击“去结算”,便跳转到订单信息确认与填写页面,填写订单(如图所示)
$this->display ();
$this->itemCount = $dao->get_item_count($this->sessionID );//总类数 $cartTotal = $dao->cart_total ( $this->sessionID );//产品总价格 $this->cartTotal = getprice_str($cartTotal);
$this->discount = $discount = $dao->discount($cartTotal);//打折信息 $this->totalAmount = getprice_str($discount['price']);//全部总价 $this->fee_readme=GetValue('fee_readme');//购物车说明
$this->itemTotal = $dao->get_item_totalcount( $this->sessionID );//$this->totalWeight = $dao->cart_total_weight( $this->sessionID );//$dao = D ( "Cart" );
$this->list = $dao->display_contents ( $this->sessionID );//购物车
[3]
部分关键代码如下[3]: function add() {
$model = array (); $i=0; //属性列表
$attributes=array_keys($_POST['attr']); $no_select=array();
//强制值不为空
foreach ( $attrlist as $key => $value ) {
if($value['input_type']==1 }
&&
in_array($value
if ( $_POST ['count'] == 0) { }
//强制登录
/*if ($this->memberID <= 0 && GetValue('quickbuy')==0) { echo die; }*/
$dao = D ( "Cart" );
self::$Model = D ( "Products" );
$prolist = self::$Model->where ( "id=" . $_POST ['id'] )->find (); $attrlist = self::$Model->get_attrs ( $prolist ['cateid'], $_POST
"";
['id'] );
['name'],$attributes) && $_POST ['attr'][$value ['name']]){
$model [$i] ['name'] = $value ['name'];
$attr_value=explode('__',$_POST ['attr'][$value ['name']]); $model [$i] ['value'] = $attr_value[0]; $model [$i] ['attr_price'] = $attr_value[1]; $i ++;
$no_select[]=$value ['name'];
}else{
}
if (count($no_select)>0) { }
$dao->add_item ( $this->sessionID, $_POST ['id'], $_POST ['count'], if($this->isAjax()){
$this->success('Shopping Cart '.itemCount().' items
'.TotalCount().'.
Total
$this->error ( "Please select ".implode(',',$no_select).'!' );
serialize ( $model ) );
quantity
'.getprice_str(cart_total()).'.'); }
function disp() { 列表 总重量 总数量 }
function delete() {
$dao = D ( "Cart" ); $this->display (); $dao = D ( "Cart" ); }else{ }
$this->redirect ( 'Cart/disp' );
$this->list = $dao->display_contents ( $this->sessionID );//购物车$this->totalWeight = $dao->cart_total_weight( $this->sessionID );//$this->itemTotal = $dao->get_item_totalcount( $this->sessionID );//$this->itemCount = $dao->get_item_count($this->sessionID );//总类数 $cartTotal = $dao->cart_total ( $this->sessionID );//产品总价格 $this->cartTotal = getprice_str($cartTotal);
$this->discount = $discount = $dao->discount($cartTotal);//打折信息 $this->totalAmount = getprice_str($discount['price']);//全部总价 $this->fee_readme=GetValue('fee_readme');//购物车说明
$dao->delete_item ( $this->sessionID, $_REQUEST ['id'] ); $this->redirect ( 'Cart/disp' );
}
function save() { }
function checked_payment(){
if
($this->memberID
<=
0
&&
GetValue('quickbuy')==0
}elseif($_REQUEST['guest']){//非强制登录 }
$_SESSION['guest']=1;
$this->redirect ( 'Cart/checked_payment'); $this->redirect ( 'Cart/disp' ); if(isset($_REQUEST['step'])
//最小金额
$minimum_money=GetValue('minimum_money'); if($minimum_money>0 }
if ($this->memberID <= 0 && GetValue('quickbuy')==0) { }
$_SESSION['guest']=0;
$this->redirect ( 'Cart/checked_payment' );
Session::set('back',U('Cart/checked_payment')); $this->redirect ( 'MemberPublic/Login' );
&&
$dao->cart_total
&&
$_REQUEST['step']=='checkout'
&& !$_REQUEST['guest']){
$dao = D ( "Cart" );
for($row = 0; $row < count ( $_POST ['pid'] ); $row ++) { }
$dao->modify_quantity ( $this->sessionID, $_POST ['id'] [$row],
$_POST ['count'] [$row]);
( $this->sessionID )<$minimum_money){
$this->error("Not be less than $minimum_money minimum!");
}else{
&& !$_SESSION['guest']) { 列表 总重量 总数量
$ShippingList=self::$Model->get_shipping_list($this->memberShippingAddress['country'],$this->memberShippingAddress['state'],$this->memberShippingAddress['city'],$weight);
//已有收货地址 //获取配送方式列表
self::$Model=D("Shipping");
$this->itemCount = $dao->get_item_count($this->sessionID );//总类数 $cartTotal = $dao->cart_total ( $this->sessionID );//产品总价格 $this->cartTotal = getprice_str($cartTotal);
$this->discount = $discount = $dao->discount($cartTotal);//打折信息 $this->totalAmount = getprice_str($discount['price']);//全部总价 $this->itemTotal = $dao->get_item_totalcount( $this->sessionID );//$this->totalWeight = $dao->cart_total_weight( $this->sessionID );////读取订单信息 $dao = D ( "Cart" );
$this->list = $dao->display_contents ( $this->sessionID );//购物车 }
if (! $this->memberShippingAddress && GetValue('quickbuy')==0 }
Session::set('back',U('Cart/checked_payment')); $this->redirect ( 'MemberIndex/ShippingAddress' ); $this->quickbuy=1;//不强制会员登录
$this->quickbuy=GetValue('quickbuy');//强制会员登录 Session::set('back',U('Cart/checked_payment')); $this->redirect ( 'MemberPublic/Login' );
&& !$_SESSION['guest']) {
}elseif($_SESSION['guest']){ }else{
}
$this->ShippingList=$ShippingList; $this->country
=
D
(
'Region'
)->where
( array('type'=>0) )->order('name asc')->select ();//国家列表
//支付方式列表
self::$Model = D ( "Payment" );
$this->paymentlist = self::$Model->getlist ();
$this->disp ();
7.3.6后台管理模块的实现
电子商城系统除了能够让用户实现前台的浏览和购物等操作之外,还必须能够使管理人员能够对系统的各种信息进行维护,如商品的增、删、查找、修改等。管理功能是网上购物系统的重要抓手。
管理的主要功能有管理员身份验证、商品管理、订单管理等三大块,商品管理,主要就是添加新的商品,删除和修改已经添加的商品。 (一)管理员身份验证
为合法用户提供一个后台入口。用户输入用户名和密码后单击“登录”按键,系统将判断用户名和密码的有效性,如果通过验证则转到后台首页,反之则提示错误。
如图所示
(二)商品管理模块
该页面主要用于将商品信息添加到数据库表中,以提供电子商城前台商品展示。 如图所示 (1) 增加商品
(2)删除商品
(3)查找商
(4)修改商品
品
(三)订单管理模块
在订单管理模块下,网站管理员可以处理订单的状态,分为未付款订单、配货中订单、已发货订单、已完成订单,管理员根据接收到的用户信息处理订单状态。
如图所示
第8章 系统测试及难点分析
8.1系统测试
8.1.1系统运行环境的搭建
本系统采用的是基于php技术 ,所以必须安装PHP运行环境。采用apache+MySQL+php+windows的集成安装包安装。 8.1.2系统测试结果
测试项目包括对系统的前台与后台进行测试。系统完成之后,对各个模块的功能进行了测试,输入数据和预测输出数据相比,发现了一些问题。主要是查询条件的前后数据类型不一致,需要靠一步步的查找解决。各个模块组装完成后,又会出现一些问题。比如在操作购物车结帐的这个流程中,由于是多次添加和修改,最后结帐,所以很容易造成数据混乱,必须对相应的数据关系理清楚,结果基本能够实现系统目标的要求,效果截图均已包含在本论文的各章节中。
8.2系统开发中存在的问题及解决方案
8.2.1系统整体设计中的出现的问题及解决方案
网页在该电子商务系统中承担着非常大的工作,包括向服务端后台写入和修改数据,以及服务端响应客户端的请求,向客户端页面返回数据,这些工作不可能只由几个网页来完成,但网页数量一多又必然结构混乱,造成开发过程难以控制。
为解决这个问题,我采用了现代软件开发过程的模块化思想,先将系统功能进行分解,大致可分为两部分,即前台和后台,前台又包括主页面及产品信息展示页面、搜索功能页面、新闻页面、购物车及订单页面等几个大的部分,后台包括会员信息管理、商品信息管理、新闻信息管理、等几个部分,各个部分又由许多小的页面组成,这样一来虽然网页数量没有减少,但结构清晰了很多,在开发过程中可以逐步,逐个模块的实现,提高了开发效率。
8.2.2开发功能模块时遇到的问题及解决方案
由于是第一次自己独立完成工作量这么大的系统,所以碰到的问题也很多,除基
本的语法问题之外,感觉还是一些考虑问题的思维方式不太得当。此次电子商务系统的设计,我感觉难度比较大的还是购物车这个模块比较的设计,因为过程复杂,它的一些逻辑处理就比较的难以用代码实现。
我参考了一些电子商务网站,以京东商城为主要参考,研究了一下他们的购物流程,大概有了一些处理的想法:用户在点击订购之后,系统先将该商品信息写入购物车页面,只有当用户在选择了商品数量,点击了确认按钮之后,系统才将该信息写入basket表。如果用户不选择商品数量,或者不点击确认按钮,系统就不把该商品信息写入basket表,这样就不至于造成basket表数据混乱,用户无法继续购物。
当用户完成选购,点击去结算时,系统开始判断商品库中的这些商品数量是否大于用户所选数量,如果没有,则提示用户没有该商品,如果有则将所有basket表中属于该用户id的商品信息提出来,并合计价格,返回给用户,用户如果确定付款购买,则给用户提供一个订货单,由用户填写一些基本信息,确认之后,系统则产生一个唯一的订货单号,并将其返回给用户,以便用户日后查询,同时,系统则将该用户所选购的商品信息以及用户信息放入到订单表中。
这样就基本上实现了购物车的功能。
总 结
经过一段时间的努力,我终于完成了网上电子商务系统的设计,基本实现了题目的基本要求。我的毕业设计论文具体论述了网上电子商务系统的主要功能及体系结构,重点讨论了系统的结构分析、各模块系统流程、各功能模块的关联等关键技术。这些技术的实现,满足了系统的基本需要,优化了系统的性能。目前基于该模型的系统尚处于实验阶段,还存在许多问题与不足,如安全性能还不完善,缺少必要的数据加密系统等,这些功能与技术还需要加以提高和实现。
由于自己经验不足,论文内容方面难免存在缺陷与遗憾。总体来说,在做这个毕业设计的过程中,我查阅了大量关于网上商城的相关资料,主要参考了京东商城的设计,历经需求分析,概要设计,详细设计,再到具体功能的实现,测试修改,运行等步骤。从中学到了很多东西。
对我来说,无论是理论还是实践上完成这样一个大的课题都是一个较大幅度的提高,可以说是理论到实践的一个飞跃。在工作和做毕业设计之余,我也在不断关注电子商务的进展,当前的电子商务愈发蓬勃发展,实体经济越来越多的通过电商平台创新,这给正处于调结构的中国社会经济注入了强大生命力,我相信,随着电子商务系统的日趋成熟、电子商务的优势日趋明显,电子商务的时代即将来临。
致 谢
在这里,特别需要感谢的是我的指导老师许老师,之前我忙于实习,在写论文的时候,一直缺乏一个明晰的思路,自己感觉论文的结构读起来总是有所欠缺,好像抓不住要害问题,但又不知问题出在何处。许老师审阅我的论文后特别耐心地给我指出论文架构和逻辑思路等方面的问题,让我有醍醐灌顶,豁然开朗的感觉,故而能及时调整思路,将文中出现的主要问题进行及时纠正,在此特别向许老师表示感谢!
参考文献
[1] 陈军,PHP+MySQL经典案例分析,北京:清华大学出版社,2008 [2] 许登旺,PHP程序开发范例宝典,北京:人民邮电出版社,2007
[3] 陈争航,PHP 5+Mysql 5 web 应用开发宝典,北京:电子工业出版社,2008 [4] 王石,精通PHP+MySQL应用开发,北京:人民邮电出版社,2006 [5] 曹培强,Photoshop CS2平面设计实战从入门到精通,北京:人民邮电出版社 2007
[6] (美) Eric van der Vlist,Web 2.0高级编程,北京:人民邮电出版社 2008
本文来源:https://www.wddqw.com/doc/3412dd66f4ec4afe04a1b0717fd5360cbb1a8d50.html