微商城系统基于php技术开发毕业论文设计

3996
    


来源:
Licence:
联系:
分类:
平台:
环境:
大小:
更新:
标签:
联系方式 :
免费下载 ×

下载APP,支持永久资源免费下载

限免产品服务请联系qq:1585269081

下载APP
免费下载 ×

下载APP,支持永久资源免费下载

下载APP 免费下载
下载 ×

下载APP,资源永久免费


如果出现不能下载的情况,请联系站长,联系方式在下方。

免费下载 ×

下载论文助手APP,资源永久免费

免费获取

如果你已经登录仍然出现不能下载的情况,请【点击刷新】本页面或者联系站长


使用PHP技术开发微分销商城

摘   要

时代在发展与进步,而各行各业也在寻求新的发展模式,微信分销商城系统将是带动企业发展的动力。从传统实体店销售到十几年前电商平台的崛起,再到如今移动互联平台的兴起,营销模式在不断出现新形式的同时,旧的模式也并没有被时代淘汰。而随着微信用户的不断增加,手机的使用用户的爆炸增长。故使用PHP做出一个适用于微信浏览器的手机端的web商城,利于我们更好、更方便的使用互联网来完成交易。

该系统主要实现了商品管理、分类管理、订单管理、用户管理、综合管理等的信息化和网络化,提高了管理效率。同时将用户评论、在线购买等前台模块与商品管理、会员管理、订单管理等后台模块有机的结合起来。通过科学全面的测试,系统实现了商品类别设置、丰富商品信息的设置、商品信息编辑上传、会员发表评论,显示最新、热卖、推荐商品、购物车功能等。

本系统可以根据实际应用的具体情况,适当加以修改,以便更好应用。本系统操作简单,灵活性好,系统安全性高,运行稳定。

 

 

关键词:网站,微分销商城,PHP ,MySQL

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

目   录

 

1. 引言. 0

1.1. 系统的开发背景. 0

1.1.1. 在线购物的发展. 0

1.1.2. 商品管理系统的现状. 0

1.2. 系统实现的目标. 0

1.3. 系统开发的意义. 0

2. 微分销商城分析. 1

网站的设计目标. 1

2.1.1. 用户群体与市场分析. 1

2.1.2. 技术能力分析. 1

2.1.3. 可行性分析总结. 1

网站设计的特点. 2

3. 系统的开发技术及主要构架. 2

开发技术的选择. 2

3.1.1. PHP技术. 2

3.1.2. MySQL技术. 2

3.1.3. Apache 2

3.1.4. phpMyAdmin 3

4. 系统的主要架构及设计模式. 3

4.1.1. 基于B/S的体系结构. 3

4.1.2. 基于MVC的应用开发模型. 4

5. 系统的功能和流程分析. 5

平台功能模块的设计分析. 5

5.1.1. 前台用户功能模块用例图. 6

5.1.2. 后台管理员功能模块用例图. 7

系统需求分析. 8

5.1.3. 业务流程的需求分析. 8

5.1.4. 数据管理的功能需求. 12

6. 系统功能的具体实现. 15

系统数据库表关系图(主体功能). 15

6.1.1. 系统流程图. 16

前台功能模块的实现. 17

6.1.2. 微分销主页(index.php) 17

6.1.3. 绑定会员信息. 19

6.1.4. 个人中心. 20

6.1.5. 搜索产品. 21

6.1.6. 查看商品详细信息. 22

6.1.7. 购买商品. 22

6.1.8. 购物车. 23

6.1.9. 商品结算. 24

6.1.10. 订单管理. 25

7. 结   论. 26

8. 参考文献. 26

 

 

1. 引言

1.1. 系统的开发背景

1.1.1. 在线购物的发展

随着网上购物平台的发展完善,越来越多的人群通过网购的方式丰富自己的生活提高自己的生活水平和质量,由于支付平台的日益完善,网上购物也愈加的方便和快捷。对比实体店的价格,网上商城的价格更加实惠和更加的多样性,人们越来越享受网上购物。

 

1.1.2. 商品管理系统的现状

商品管理系统的开发,是帮助商家更好的展现自己的产品的平台,让消费者更好的对比产品的性价比,对产品有更好的了解。

目前,商品管理系统已经越来越多的应用到了大型的电子商务解决方案之中,起到了良好的效果。在当当网(http://www.dangdang.com/)、淘宝网(http://www.taobao.com),京东网(www.360buy.com)提供了强大的商品管理功能。

1.2. 系统实现的目标

本系统主要搭建一个在线商城购物系统,使用户实现在线产品的分销、产品的代销、批发,并且解决商家招商难、铺货难的问题。一方面用户可以使用该商城进行不同产品的类型、价格、规格等进行筛选选择,最后提交订单并完成整个在线购买流程,实现购物车的功能。管理员在后台设置录入产品的相关信息,包括价格、规格等,然后管理用户的购买订单,进行发货等业务处理。

1.3. 系统开发的意义

微信分销商城系统是“微商城+微分销(无限级)”一体化成交平台,采用三类佣金和三级分销机制,直面线下门店和传统电商平台商户流量难、流量贵的痛点,用直接“利益”赋予朋友圈内分享的微商城和商品信息具备推广动力。

2. 微分销商城分析

网站的设计目标

网站使用简洁的商城结构,让登录了的用户进行商品的搜索、使用购物车、填写订单、选择支付和送货方式等操作,用户发表对购买商品的评论,在填写订单的时候可以附带留言对自己订购的商品加以备注说明,商品分销,成为分销商后,商品详情页都有我要分销按钮,点击我要分销。

商家在后台查看数据,设置店铺信息,支付方式,设置分销商提成等级,设置分销体现申请,包括地址、条件、类型,设置运费模板,便于物流订单配送等。

管理员有权在后台面板进行商品管理、用户管理、订单管理和留言管理以及一些常规的设置和数据库管理(包括备份和恢复)等操作。

2.1.1. 用户群体与市场分析

现在传统的电商模式已经不能适应现在快速发展的时代,其宣传成本渐渐提升,购买成交率也大幅度降低,无数中小型商家都苦于宣传无力及被品牌商家的压制,而无法打开销路。

而微信分销商城系统的功能最大的优势就在于去中心化这一点。由于商品通过微信朋友圈传播,使企业将关注重心从技术层面转向商品层面,通过优质内容和价格吸引终端顾客,将商品价格构成中原本属于电商平台的运营成本转化为分销佣金,使分销商和消费者获得最终实惠。

改变原来传统的线下营销模式,节省了渠道扩展投入成本,提高了成本投入的回报率,加快了资金回笼与资金流动,有机整合线上和线下的商业模式,使现有资源能够被充分运用,可以同时开展多项业务,共享企业资源,大大提高资源利用率。

2.1.2. 技术能力分析

根本系统采用PHP+Mysql+Apache进行开发,其中本系统是基于PHP技术结合ThinkPHP框架,使用MySQL,数据库作为后台,使用Apache服务器作为Web服务器,实现移动端的网上商品的交易平台,本系统的开发环境使用现在特别流行的开源Apache服务器,使用方便、运行稳定、安全可靠。PHP+Mysql+Apache这个国际公认的网站开发黄金组合,在电子商务系统开发上,得到广泛的应用。如易趣网、百度有啊、ecshop等大型电子商务网站。综上所述,本系统在技术方面是可行的。

2.1.3. 可行性分析总结

2016年,微信拉动全社会消费4475亿元,同比增长37.6%,其中直 接带动信息消费1743亿元,同比增长26.2%,相当于同期中国信息 消费总规模的4.54%。 微信带动流量消费1587亿元,同比增长26.6%,拉动行业流量收 入超三分之一,截至2016年12月,全球微信和WeChat的合并月活跃账户数达到8.89亿, 同比增长28%,而微分销系统依靠微信平台做为支撑,其宣传力度及资源转换得到充分地提高。以此作为依据而言,商城的方案设计具有很大的可行性。

网站设计的特点

系统的设计上需要注重安全性和用户操作的流畅性。因此要在对用户的管理和权限环节做出限定,只有经过注册、登录的会员才有权使用,而且需要对管理员进行不同的权限分配。搜索将在系统功能中占据重要的位置,可以使用多个属性字段进行模糊搜索,并在搜索结果提供比较通道。

3. 系统的开发技术及主要构架

开发技术的选择

3.1.1. PHP技术

. PHP是为Web设计使用的服务器脚本语言。当HTML页面嵌入PHP代码时,访问者可以看到其他的输出,这是因为PHP代码被执行访问时会在服务器中解释并生成。PHP可以免费地进行许多操作,如访问别人的代码,还有使用、修改甚至发布等操作。这是因为PHP源代码产品是开放的。

PHP最初只是Personal Home Page(个人主页)的缩写,但是后来经过修改,采用了GNU命名惯例(GNU=Gnu’s Not UNIX),如今它是PHP超文本预处理程序的缩写。

PHP的主要竞争对手有Perl, Microsoft Active Server Pages (ASP), Java Server Pages (JSP)和Allaire Cold Fusion。与这些产品相比,PHP具有很多优点,例如高性能、低成本、容易学习和使用、可移植性、源代码可供使用、内置许多常见Web任务所需的函数库、与许多不同数据库系统的接口等。

3.1.2. MySQL技术

MySQL是一个快速而又健壮的关系数据管理系统(RDBMS).一个数据库将允许你高效地存储、搜索、排序和检索数据。MySQL服务器可以将多个用户并发地使用这是因为每次对数据的访问进行了控制。与此同时,只有经过验证的使用者才能进行访问数据的操作,这样还可以加快访问的速度。所以MySQL是一种多用户和多线程的服务器。它使用了全球通用的标准数据库查询语言,即SQL(结构化查询语言)。

3.1.3. Apache

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。Apache web服务器软件拥有以下特性:  满足HTTP/1.1通信协议

 文件的配置过程简单而有效 支持通用网关接口  支持基于IP和基于域名的虚拟主机 支持多种方式的HTTP认证 集成Perl处理模块 集成代理服务器模块  支持实时监视服务器状态和定制服务器日志 支持服务器端包含指令(SSI) 支持安全Socket层(SSL) 提供用户会话过程的跟踪 支持FastCGI  通过第三方模块可以支持Java Servlets  如果你准备选择Web服务器,毫无疑问Apache是你的最佳选择。

 

3.1.4. phpMyAdmin

phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。

其中一个更大的优势在于由于phpMyaAdmin跟其他PHP程式一样在网页服务器上执行,但是您可以在任何地方使用这些程式产生的HTML页面,也就是于远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。也可借由phpMyAdmin建立常用的php语法,方便编写网页时所需要的sql语法正确性。

 

4. 系统的主要架构及设计模式

4.1.1. 基于B/S的体系结构

在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。B/S结构简化了客户机的工作,客户机上只需配置少量的客户端软件。服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。浏览器发出请求,而其余如数据请求、加工、结果返回以及动态网页生成等工作全部由Web Server完成。实际上B/S体系结构是把二层C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由Web服务器单独组成一层来负担其任务,这样客户机的压力减轻了,把负荷分配给了Web服务器。这种三层体系结构如图1-1所示。  

 

图1-1 B/S三层架构示意图

这种结构不仅把客户机从沉重的负担和不断对其提高的性能的要求中解放出来,也把技术维护人员从繁重的维护升级工作中解脱出来。由于客户机把事务处理逻辑部分分给了功能服务器,使客户机一下子"苗条"了许多,不再负责处理复杂计算和数据访问等关键事务,只负责显示部分,所以维护人员不再为程序的维护工作奔波于每个客户机之间,而把主要精力放在功能服务器上程序的更新工作。这种三层结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能。

 

 

 

 

 

 

 

4.1.2. 基于MVC的应用开发模型

在传统的基于Web的应用系统中,例如ASP,CGI等,通常开发者将业务逻辑,数据逻辑、展示逻辑等混杂在一起,在同一个界面面里既进行后台数据库的访问和操作,同时还包含业务流程和页面表示。这样编写出来的程序,既不利于程序员对业务代码的调试,同时也不利于编辑人员进行交互页面的设计。同时系统也不具备可扩展性,当我们要在现有业务上进行扩展的时候,通常无法借助于现有的资源和应用,而只能够重新编写,大大增加了投资,延长了系统上线的时间,失去了竞争市场的优势。

在本网上购物系统中,将采用通行的MVC模式来构建应用。这种结构解决了前面所述的所有问题,在我们的应用集成网络中,通过企业级高端J2EE应用服务器实现MVC开发模型。

MVC的逻辑图如下图1-2、1-3所示。

 

图1-2应用服务器之上采用MVC开发的逻辑示意图

 

图1-3 MVC业务流程示意图

 

 

 

 

 

 

通过这种方案,我们可以迅速地实现整个业务,其优势和特点如下: 

Model(模型)层:由EJB组件来实现,EJB将具体的业务封装在组件内部,具备安全、高性能、可重用等优秀的特征。 

View(视图)层:由PHP、HTML组成。这一层次的特点是能够真实地展示和客户交互的界面,具备可描绘的功能。同时能够嵌套动态数据,可以进行动态页面的展示。同时可以方便地进行客户端的个性化定制。根据每个客户的需求来展示不同风格的界面。 

Controller(控制器)层:是非常重要的一层,这一层是连接View和Model的纽带,同时也是将这两层进行最大限度分离的工具。通常由Servlet来实现,Servlet和PHP虽然同样都属于页面展示工具,但分属两层。主要在于PHP以脚本语言的形式存在, 它的主要优势是进行动态数据的Web展示,而Servlet是一个完整的Java程序,进行业务的调用和流程的处理是它的长处。 

通过这种模型的建立,我们的应用系统具备了非常好的性能和可扩展性。将业务组件和展示页面进行分离,并通过Controller来描述调用关系,一方面可以提高效率,另一方面也可以增加系统扩充的能力,使我们的系统可以进行最快速度的业务扩展,以满足不同用户、不同阶段、各种各样的业务需求。

 

 

 

5. 系统的功能和流程分析

平台功能模块的设计分析

本系统主要功能模块可分为前台用户和后台管理员两大模块,其中可细分为:

前台用户功能模块主要包括:

  • 注册、登录
  • 产品搜索
  • 个人信息管理
  • 购物车管理
  • 订单管理
  • 分销中心

 

后台管理员功能模块主要包括:

  • 产品管理
  • 会员管理
  • 分销商管理
  • 分权管理
  • 订单管理
  • 评论管理
  • 物流跟踪管理

 

5.1.1. 前台用户功能模块用例图

前台用户的功能模块用例图,显示具体操作流程:游客注册成为会员,通过登录网站查看产品信息,产品搜索,购买产品,发表评论,修改密码等操作,更多可操作流程如下 图2-1 用户功能模块用例图

图2-1 商城用户功能模块用例图

 

 

 

5.1.2. 后台管理员功能模块用例图

后台管理员具有商品管理、订单管理、用户管理、评论管理等功能模块,如下 图2-2 管理员功能模块用例图

 

图2-2 微分销商城管理员功能模块用例图

 

 

 

 

 

 

系统需求分析

在微分销商城的需求分析阶段,可以充分利用敏捷开发模式的灵敏性,迭代性,适用性等特点,加快项目的开发步骤。 随着信息科学和互联网应用的不间断性的通俗化,多样化、主观性和理解力的用户需求正在进行着大幅度的改善,而这种改善减轻了软件重用技术和在广泛的系统开发中基于组件和面向服务的软件结构的广泛应用的困难。微分销商城是在对其公司业务进行实地调研后,以实际为基础进行设计的,该系统采用B/S模式(浏览器/服务器),用户可以通过前台的操作界面发送请求到业务层,由业务层访问和处理数据层,数据层对数据库进行数据的更新和修改等操作。

5.1.3. 业务流程的需求分析

通过合理探究网络商城的有关方面,如构建框架、业务实现环节等,从而掌握到对应的需求信息,了解使用者的具体需要、系统的功能特点以及探究要点,以流程图的方式对其进行具体的呈现,细致描绘业务执行的相关环节。

业务流程图的获得要建立在相应的前提下,即要合理探究系统后台的运作情况,且要综合使用者购买物品的具体环节流程,探究要点应以系统达到的目的,实现的作用为中心,并进行扩展。探究的成果以图形的方式进行呈现,其要配以文字解释。  根据网络购物商城系统的业务流程设计,确定业务流程图,用户可以在商城内进行注册、选购商品、商品评论等,用户选购好商品放入购物车当中进行结算,确定订单,然后通过支付宝进行付款,后台管理员管理用户所发表的评论信息、发表公告信息以及订单的处理。系统整体业务流程图,如图3-1所示。

图3-1 系统整体业务流程图

 

 

系统业务流程的设计是需求分析中很关键的一环,网络购物商城系统的业务流程设计通过上一小节的系统整体业务流程图主要分为3个部分:未注册用户流程图、注册用户流程图、管理员流程图。 

 

1. 未注册用户流程  未注册用户流程针对未登录系统的访客用户。该类型用户可以通过单击商品分类浏览商品信息,并可以把自己感兴趣的商品加入到购物车中,如果没有发现感兴趣的商品,该用户可以通过顶部的查询功能搜索指定商品。未注册用户可以通过单击导航菜单顶部的“购物车”栏目管理已选购的商品,此时如果用户单击“结算”按钮则进入系统登录页,并提示用户注册账户或者登录系统。未注册用户在查看商品信息时,不能把商品放入购物车当中、发表评论信息以及自我开店,如果用户单击这些功能则进入登录页,并要求用户输入账号和密码进行登录,登录前后都可以对商品进行浏览,当用户登录成功之后把选择的商品放入购物车当中,确定订单。 

考虑到普通的明文表单登陆的安全性问题:某些人可能通过拦截http包的方式来获取表单登陆数然后构造伪造包来进行登陆,本模块使用同步ajax方式进行登陆,通过类似令牌的机制来稍微加强一下网站的安全性,以登陆过程为例: 

(1). 点击登陆按钮时ajax同步请求php页面产生一个8位(位数自己定)随机字符串存进session里,并将该字符串的md5值返回客户端。  

(2). 客户端提交表单前将用户的密码进行md5加密,然后和客户端的随机字符串md5值相加,提交到服务器。  

(3). 服务器端取得session里的随机字符串,经md5加密,和从数据库取得的密码md5值相加,和客户端提交的数据比较,若相等则正确。  

这个过程中的令牌是随机字符串,客户端和服务器端都持有这个令牌,就像谍战片里的暗号,你的暗号和我的合拍了才是自己人。分层结构整体的展示如图3-2所示。

图3-2 用户管理分层结构整体的展示图

 

 

 

 

 

 

2. 注册用户流程  注册用户流程针对注册成功个人账户并登录系统的用户。注册用户可以通过单击商品分类获取自己需要的商品列表,商品列表将显示商品的简介和图片,单击某个商品图片之后,则显示商品的详细信息。如果没有发现感兴趣的商品,可以通过商城顶部的查询功能搜索特定商品。用户通过商品信息页为该商品发表评论,并且可以把该商品添加到购物车中。用户通过导航菜单“购物车”管理已选购的商品信息,用户单击“生成订单”按钮进入账单结算页,并提示确认订单信息。注册用户流程图,如图3-3所示。

图3-3 注册用户功能流程图

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. 管理员流程  管理员登录系统后台管理页之后,管理员可以编辑或者添加首页公告信息,如果商城内有最新的消息,可以对公告管理进行操作。若管理员选择订单管理,右侧管理菜单将显示订单检索并允许管理员修改和处理订单信息。管理员在进入商品管理页后,可以查看商品列表或者添加新的商品信息。  用户在登录页面,输入账号和密码,点击登录按钮,按钮的响应事件调用Users的SignIn方法,该方法调用类WebUser的Login方法,然后直接映射到数据库,经过数据库的比对账号密码,获取到相应IP,然后逐层返回到UI,在界面显示用户名及其IP。对于用户发表的商品评论信息,管理员进入评论审查页进行管理,具体的管理员流程图,如图3-4所示。

 

图3-4 管理员流程图

 

 

 

 

 

 

 

 

 

 

5.1.4. 数据管理的功能需求

系统具有多样化的作用特点,总体看来,其基本作用体现在对商品的查找与将其进行品种归类,使用者账户的注册以及登录、管理者对商品情况的具体操作、网上商品的支付事宜、产品供给方对产品与相关评价的监管等。因此,应该对该些要素进行全面的研究,从而才能有助于系统的研发与完善,以模块的角度来划分,可把系统具体归纳成管理者管理、使用者管理、支付管理、查找管理以及产品供给方管理这些部分,此外应该还包含有其他部分,此时所呈现出来的信息流图过于繁杂,因此,通常要以分层的方法来将具体信息进行呈现。而以顶层数据流图的特点来看,其实体部分为管理者以及使用者,并将相应的系统作用信息进行呈现。顶层数据流图,如图3-5所示。

图3-5 顶层数据流图

 

网上购物系统当然少不了购物环节,现实生活中购买商品有一定的过程,网络购物也是一样,用户首先注册或者登录,登录之后选择购买商品放入购物车当中,然后进行商品结算,确定订单,付款成功之后,进行发货,所以给出购买商品数据流图,如图3-6所示。

图3-6 购买商品数据流图

 

 

 

 

 

对于一般系统,都会有后台管理员管理系统的一般业务,管理员管理用户信息、公告信息、订单信息、商品信息、评论信息等,所以给出了网络商城的后台管理数据流图,如图3-7所示。

图3-7 后台管理数据流图

 

 

每个系统都有自己享有的功能主体,不同的业务分析出不同的业务流程,所以根据顶层数据流图给出第一层数据流图,在第一层数据流图中包括用户基本操作,如:用户注册/登录、店铺管理、发表评论信息、回复/发送站内信等,部分数据模型及其关系如图3-8所示。

图3-8 第一层数据关系图

 

 

 

 

 

 

 

 

5.2. 各功能模块的实现

5.2.1. 数据库的连接

出于安全性的考虑,我们将与数据库的连接,单独写出来并进行编译,也就是数据库连接的javabean文件,编译出来的.class文件是无法被修改的只能通过源文件进行修改,我们在PHP页面中只用直接调用改方法即可,在本系统中我们将其命名为为.faq

存放在class/ckstudio/db下设其id为mdb,我们在需要对数据库进行操作的时候只需在页面上添加这样一个标签<php:useBean 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);

返回操作结果

5.2.2. 用户登陆模块的实现

用户登陆模块是防止非法用户登陆的第一道防线,通过它可以保护后台数据库的安全性,当用户要进行定购时,首先要进入的就是身份验证界面,只有在密码正确的情况下才能进行以后的购物,如果输入的密码不正确,则不能进行定购。如果用户以浏览者的身份进入网站,则只能进行一般的商品浏览和搜索,而不能进行选购,在点击添加购物车后,系统会判断该用户是否是登陆用户,如果不是则弹出提示页面,提示用户必须先登陆才能定购商品,如果是第一次登陆,请先注册。

登陆的具体实现要通过一个全程变量,即Session变量来实现,在系统中则由一个单独的session.php页面来放置该session。用户登录的界面dengluyufou.php,从member表查得用户提交的帐户名和密码正确后,用一个全局变量,即Session变量保存这一消息(该变量名称为Session(“user_name”))。具体的判断过程为:

若session中user为空即session.getAttribute("user_name")==null,表明没有经过登陆与否的验证,则立即跳转到dengluyufou.php,请用户登录;并将用户登陆的帐号和密码通过

user_name=request.getParameter("user_name");

user_pass=request.getParameter("user_pass");

分别赋给变量user_name,和user_pass,然后将其与数据库中的相应信息进行比较

String sql="select * from member where user_name='"+user_name+"'";

如果user_name存在的话则判断其密码是否正确

user_pass.equals(rs.getString("user_pass"))

如果为真则将用户信息赋给session session.setAttribute("user_name",""+rs.getString("user_name")+"");

以方便系统对用户在操作一些会员功能时进行用户身份验证。

如果用户还不是会员则提示用户进行注册,用户提交信息之后,系统开始判断用户的注册信息是否有效,首先是用户名是否为空,(该处存在用户名命名规则的问题,后面问题中会详细解决)用户输入的两次密码是否一致,然后依次往后判断用户所填写的各项信息是否符合要求,直到所有信息均正确无误,系统将该用户注册信息写入会员表即member并提示用户注册成功,用户登陆后,就可以进行有效的购物了。

系统对用户的注册信息的验证实现如下:

用户输入的各项信息分别对应字段

user_name,user_pass,user_pass2,user_adds,

user_tel,user_mail,user_postcode;

先判断用户名是否为空request.getParameter("user_name").equals("") 

如果不为空则将该值传给变量user_name user_name=getStr(request.getParameter("user_name"));

同样道理对密码进行判断

request.getParameter("user_pass").equals(""))

request.getParameter("user_pass2").equals(""))

判断两次输入是否一致user_pass.equals(user_pass2)

其他选项与上面类似,如果条件符合则将该值赋给各个字段

用户名重复的验证代码为:

sql="select * from member where user_name='"+user_name+"'";

rs=mdb.executeQuery(sql);

if(rs.next()){

    errmsg=errmsg+"用户名已被别人注册";

    founderr=true;

}

当所有条件都符合的时候,系统将数据写入数据表,并返回成功页面,显示用户所填的注册信息,写入关键语句为:

sql="Insert into member(user_name,user_pass,user_adds,user_mail,user_tel,user_regip,user_namec)values('"+user_name+"','"+user_pass+"','"+user_adds+"','"+user_mail+"','"+user_tel+"','"+request.getRemoteHost()+"','"+getStr(request.getParameter("user_namec")))";

用户在注册之后也可以对自己的资料进行修改,在点击主页面的修改资料之后,弹出这样的一个页面,用户可以直接在文本框里修改,然后确认。

修改这一过程的具体实现过程为

user_name=request.getParameter("user_name");

sql="select * from member where user_name='"+user_name+"'";

ResultSet rs;rs=mdb.executeQuery(sql);

根据用户名将该用户的所有信息列出来,以供用户修改,

修改的方法采用的是rs.updateString("user_pass",user_pass);其他的类似。

 

5.2.3. 购物车模块的实现

当用户登陆成功以后,如果找到了希望定购的物品,在点击物品下方的定购以后,系统会弹出一个新的页面,显示该物品已经添加进购物车,然后用户需要选择定购的数量。

在点击确认以后,该物品信息被后台添加到购物车表即basket表中,如果用户需要继续购物,可以继续选择,不断添加,系统会自动将所有信息写入basket表,同时显示用户所购买的物品列表,及合计价格。

其具体代码实现过程为:

从session中取得该用户的信息

user_name=(String)session.getValue("user_name");

user_type=(String)session.getValue("user_type");

对商品的信息进行提取以写入购物车表

String hw_ids=request.getParameter("hw_id");

String counts=request.getParameter("count");

String hw_cashs=request.getParameter("hw_cash");

hw_name=request.getParameter("hw_name");

具体的写入语句为:

sql="insert into basket(hw_id,user_name,basket_count,hw_name,hw_cash)";

      sql=sql+"values('"+hw_ids+"','"+user_name+"','"+counts+"','"+hw_name+"','"+hw_cashs+"')";

 mdb.executeInsert(sql);

如果用户在去收银台结帐前对已经选购的物品不满意时,可选择清空购物车,同时系统也将basket表中相关信息删除。用户完成选购之后,可点击收银台付款,系统返回最终选购物品列表和合计价格。

该步骤实现的关键语句为:

String user_name=(String)session.getValue("user_name");

String sql="select * from basket where user_name='"+user_name+"'and basket_check=false";

ResultSet rs;rs=mdb.executeQuery(sql);

系统只统计basket_check为否的该用户选购的商品信息。

用户再一次确认后,系统会显示购物成功并返回给用户一个定购单号,提示用户填写收货人详细信息,包括姓名、地址、邮编、邮箱、电话、付款方式、备注等信息,这些信息是系统自动从用户表中提取出来的,用户可以修改。

这一步的具体实现与用户资料修改类似,都是先将该用户的相关资料从数据库中调出来sql6="select * from member where user_name='"+(String)session.getValue("user_name")+"'";然后使用方法update对表中各项信息进行修改。

确认后,系统弹出提交成功页面,

该页面也就是将用户提交的订单信息返回,并产生了一个唯一订单号,以方便用户查询,这个订单号的产生,并不是随机产生的,而是使用了一定的规则,在这里主要是根据用户名和订单产生的时间来生成订单号,具体的代码如下:

String sub_number="";

String now=(String)((new java.util.Date()).toLocaleString());

sub_number=user_name+now;

相类似的,系统中的其他类似字段也可以使用这样规则来产生随机编号,以方便管理。

 

6. 系统功能的具体实现

系统数据库表关系图(主体功能)

 

图4-1 数据表关系图

 

6.1.1. 系统流程图

系统整体主要流程图,如图4。

图5-1  系统整体主要流程图

 

前台功能模块的实现

6.1.2. 微分销主页(index.php)

图6-1微分销主页

 

 

 

网站导航

图6-2网站主要页面的导航条

 

 

 

 

 

 

 

 

 

 

产品区分功能

利用产品属性分类以及品牌加分类划分,使用户可以更加便捷的查找所需产品

 

图6-3商品分类

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.1.3. 绑定会员信息

用户进入后会自动绑定微信账号,但需要在个人中心那里绑定个人信息,如手机号及所在城市

 

图6-5会员资料

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.1.4. 个人中心

用户可以在个人中心查看个人详细信息,用户可以在个人管理页面添加、修改个人详细信息,包括用户登录密码、用户收获地址信息已经订单相关操作等

 

图6-6个人中心

 

 

 

 

 

 

 

 

 

6.1.5. 搜索产品

用户输入关键字搜索,系统便根据关键字进行查询操作,把结果返回给用户,用户同时可以选择价格、销量等进行对搜索内容再次准确查找,也可以不带搜索关键字,直接通过筛选价格等进行查找相应的产品信息。

 

图6-7 关键字搜索

 

 

 

 

 

 

 

 

 

 

6.1.6. 查看商品详细信息

商品详细信息页,通过URL传过来的产品ID把商品的全部信息展示给用户,用户可以选择购买、收藏或者放入购物车

图6-8查看商品详情

 

 

6.1.7. 购买商品

用户点击加入购物车按钮以后,系统将跳转至购物车并展示用户选择购买的产品数量、总价等信息,待用户确认无误以后便可以结算进入下一步操作。同样直接点击立即购买,这直接跳转结算页面

图6-9

 

6.1.8. 购物车

购物车功能指的是应用于网店的在线购买功能,它类似于超市购物时使用的推车或篮子,可以暂时把挑选商品放入购物车、删除或更改购买数量(图6-10),计算产品总价,待用户确认无误后对多个商品进行一次结款

 

图6-10 购物车

 

用户确认无误以后便可以进入结算页面

 

 

 

 

 

 

 

6.1.9. 商品结算

用户在没有填写收货信息时需要填写收货信息

选择收货信息,并且余额充足就可以提交生成订单,待订单生成以后,用户可以进入订单管理页面对个人订单进行管理

 

图6-11 订单确认页面

 

图6-12新增收货地址页面

 

6.1.10. 订单管理

用户订单页面,包含用户全部订单记录,用户可以取消系统未处理订单、查看已完成订单信息等操作

 

图6-13用户的订单记录

图6-14 支付页面

 

7. 结   论

在过去几个月的设计和开发过程中,通过老师的指导、主动的收集资料,已有知识的整合,对构建大型系统尤其是商务应用系统有了进一步的认识,更加熟悉在php中使用mvc框架的编程思想,并了解Think php框架的基本使用方法。

在系统的开发过程中,充分的借鉴了其它网上商城的优秀代码段和设计思想,使用Think PHP框架,完整的实现了系统的需求。而MySQL本身所具有的良好性能,且与php搭配的天衣无缝,对于繁杂而且庞大的数据处理有明显的优势,这就为系统的使用提供了稳定性和安全性。

然而,做为网上商城系统,系统整体来说并不是很完善, 还有更多未实现的功能如:微信支付存在bug,分销中心未完善, 还有需要更多的时间和经历的投入去完善,需要有良好的性能来防范可能出现的任何漏洞,对程序代码本身的安全性要求相当高,从这个方面来看,还需要进一步的工作来完善,在确保功能流程的前提下为用户提供体验性好而且可信任的服务。

 

8. 参考文献

 

[1]陈军.PHP+MySQL经典案例分析[M].清华大学出版社,2008.

[2]许登旺.PHP程序开发范例宝典[M].人民邮电出版社,2007.

[3]陈争航.PHP5+Mysql5web应用开发宝典[M]. 电子工业出版社,2008.

 

 


免费下载 ×

下载APP,支持永久资源免费下载

下载APP 免费下载
温馨提示
请用电脑打开本网页,即可以免费获取你想要的了。
扫描加我微信 ×

演示

×
登录 ×


下载 ×
论文助手网
论文助手,最开放的学术期刊平台
							 
回复
来来来,吐槽点啥吧

作者联系方式

×

向作者索要->