B2C电子商务网站开发_教程63510.docx
第11章 B2C电子商务网站开发【本章要点】E 需求分析E 系统设计E 数据库设计E 系统实现E 系统测试与部部署11.1 需求求分析随着社会文化水水平的提高和和计算机应用用的普及,网网络购物已经经开始被广大大消费者所接接受并广泛使使用,电子商商务的发展进进入新的阶段段。电子商务务可以理解为为买卖双方互互不谋面,通通过互联网实实现洽谈、订订货、在线付付款等完整的的商业交易活活动。电子商商务可以分为为B2B模式式(Busiiness To Buusinesss:企业对对企业)、BB2C模式(BBusineess Too Custtomer:企业对个人人客户)、CC2C模式(CCustommer Too Custtomer:个人客户对对个人客户)。国国内外著名的的电子商务网网站有阿里巴巴巴、淘宝网网、当当网、亚亚马逊等。本章通过简单的的B2C网上商城城系统-闽闽台商城开开发,介绍使使用PHP进进行WEB应应用程序开发发的一般过程程和方法。BB2C网上商城城系统-闽闽台商城即即企业负责电电子商务网站站的构建和运运营,网站提提供商品发布布、会员注册册、购物车、订订单提交等功功能。会员可可以通过浏览览商品信息、提提交订单,企企业通过网站站可以管理商商品,处理订订单,实现简简单的电子商商务活动。11.2 系统统设计11.2.1 系统功能结结构通过对国内外电电子商务网站站的分析,结结合客户的具具体应用需求求,闽台商商城网站项项目的具体功功能如下: 1. 前台主要要功能:(1) 商品展展示:提供各各类别商品展展示页面,要要求显示商品品名称、实物物图片、市场场价和会员价价等信息,提提供“查看详细信信息”和“放入购物车车”超链接。为为各个商品提提供详细介绍绍页面,包括括商品名称、实实物图片、商商品描述等信信息。(2) 商品订订购:会员查查看完商品后后可以将该商商品放入购物物车,可以对对购物车进行行管理,包括括更改订购数数量、从购物物车中删除商商品、清空购购物车等。会会员可以提交交订单,填写写收货信息,完完成商品订购购业务。(3) 文章展展示:提供各各类新闻文章章的展示,包包括商场公告告、交易帮助助等信息。(4) 会员中中心:提供会会员注册和登登陆功能,会会员登陆网站站后可以实现现商品订购、查查看订单等功功能。2. 后台主要要功能:(1) 商品管管理:系统管管理员能够管管理商品类别别和商品信息息,包括商品品信息的发布布、修改、删删除等功能;(2) 文章管管理:系统管管理员能够管管理文章类别别和文章信息息,包括文章章信息的发布布、修改、更更新、放入回回收站和彻底底删除等功能能;(3) 会员管管理:系统管管理员能够管管理会员信息息,包括会员员信息的查看看、启用和禁禁用等功能;(4) 订单管管理:系统管管理员能够管管理会员提交交的订单信息息,包括查看看订单详细信信息,发货、结结算等功能;闽台商城网站站由网站前前台和网站管管理后台组成成。网站前台台的系统功能能结构如图111-1所示示,网站管理理后台的系统统功能结构如如图11-22所示。 图11-1网站站前台功能结结构图 图11-22 网站管理理后台功能结结构图11.2.2 系统业务流程图闽台商城网站站的系统业业务流程图如如图11-33所示。图11-3 系系统业务流程程图11.3 数据据库设计11.3.1 数据库分析析根据需求分析和和系统设计,分分析系统数据据库结构,并并为其设计合合理的数据库库。本项目数数据库关系图图如图11-4所示。图11-4数据据库关系图11.3.2数数据库创建表11-1 管管理员信息表表Adminn_Infoo字段名称字段类型备注A_IDint管理员编号(主主键,标识)A_UserNNameVarcharr(20)用户名A_PasswwordVarcharr(50)密码A_TelVarcharr(20)联系电话A_QQVarcharr(20)QQA_EmaillVarcharr(50)邮箱A_CreatteTimeeDatetimme注册日期A_StatuusInt状态表11-2 会会员信息表MMemberr_Infoo字段名称字段类型备注M_IDint会员编号(主键键,标识)M_NameVarcharr(20)会员名M_PasswwordVarcharr(50)密码M_QuesttionVarcharr(50)密码保护问题M_AnsweerVarcharr(50)密码保护答案M_CardVarcharr(30)身份证号M_TelVarcharr(20)联系电话M_QQVarcharr(20)QQM_EmaillVarcharr(50)邮箱M_AddreessVarcharr(200)联系地址M_CodeVarcharr(20)邮政编码M_MoneyyFloat消费总额M_Blanccefloat余额M_CreatteTimeeDatetimme注册日期M_StatuusInt状态表11-3 商商品类别表 Produuct_Tyype字段名称字段类型备注PT_IDint类别编号(主键键,标识)PT_PareentIDInt父级类别编号PT_NameeVarcharr(20)类别名称PT_Intrrotext类别简介表11-4 商商品信息表PProducct_Inffo字段名称字段类型备注P_IDint商品编号(主键键,标识)PT_IDInt类别编号P_NameVarcharr(100)商品名称P_ModellVarcharr(300)规格P_ImageeVarcharr(300)图片P_IntrooText介绍P_BranddVarcharr(50)品牌P_MPricceFloat市场价P_VPricceFloat商城价P_SellNNumInt销售量P_StoreeNumInt库存量P_HitsInt访问量P_CreatteTimeeDatetimme发布时间P_StatuusInt状态表11-5 文文章类别表 News_Type字段名称字段类型备注NT_IDint类别编号(主键键,标识)NT_PareentIDInt父级类别编号NT_NameeVarcharr(20)类别名称NT_IntrroText类别简介表11-6 文文章信息表NNews_IInfo字段名称字段类型备注N_IDint文章编号(主键键,标识)NT_IDInt类别编号N_TitleeVarcharr(200)文章标题N_IntrooText摘要N_ConteentsText内容N_HitsInt访问量N_CreatteTimeeInt发布时间N_StatuusDatetimme状态表11-7 订订单信息表 Order_IInfo字段名称字段类型备注O_IDint订单编号(主键键,标识)O_NumVarcharr(20)订单号M_NameVarcharr(20)会员名P_NumsInt商品数量O_MoneyyFloat消费金额O_TakerrVarcharr(100)收货人O_AddreessVarcharr(300)收货地址O_TelVarcharr(20)联系电话O_PaymeethodInt付款方式O_CreatteTimeedatetimme订单日期O_StatuusInt订单状态O_Remarrktext备注表11-8 订订单商品信息息表 Ordder_Prroductt字段名称字段类型备注OP_IDint编号(主键,标标识)O_NumVarcharr(20)订单号P_IDint商品编号P_UnitPPricefloat单价P_NumsInt数量P_FlodFloat折扣P_PriceeFloat小计价格11.4 系统统实现11.4.1 创建项目本节开始系统的的编程实现,在在编写代码之之前,先规范范网站的整体体文件结构,创创建系统中可可能用到的文文件夹。在CC:ApppServwww文件件夹中创建一一个文件夹,命命名为“webshhop”,在“webshhop”文件夹中分分别创建coonn、immages、aadmin、uuploadd四个文件夹夹。那么开发发过程中,只只需要将所创创建的文件保保存在相应的的文件夹中。项项目完整的文文件清单如表表11-9所所示。表11-9 项项目文件清单单根目录文件子目录文件说明1connConn_DBB.php数据库链接文件件images存放网站前台图图片素材upload存放上传的商品品图片及文章章图片2Adminlogin.pphp系统后台登陆页页面3main.phhp系统后台管理主主页4admin_aadd.phhp管理员信息添加加页面5admin_mmanageer.phpp管理员信息管理理页面6admin_uupdatee.php管理员信息修改改页面7newstyppe_addd.php文章类别添加页页面8newstyppe_mannager.php文章类别管理页页面9newstyppe_upddate.pphp文章类别修改页页面10news_addd.phpp文章添加页面11news_maanagerr.php文章管理页面12news_uppdate.php文章修改页面13productttype_add.pphp商品类别添加页页面14productttype_managger.phhp商品类别管理页页面15productttype_updatte.phpp商品类别修改页页面16productt_add.php商品添加页面17productt_manaager.pphp商品管理页面18productt_updaate.phhp商品修改页面19member_managger.phhp会员信息管理页页面20member_info.php查看会员信息页页面21order_mmanageer.phpp订单信息管理页页面22order_iinfo.pphp查看订单信息页页面23select_newsttype1.php下拉框文章类类别用于文章类类别添加页面面24select_newsttype2.php下拉框文章类类别用于文章添添加页面25select_newsttype3.php下拉框文章类类别用于文章修修改页面26select_produucttyppe1.php下拉框商品类类别用于商品类类别添加页面面27select_produucttyppe2.phhp下拉框商品类类别用于商品添添加页面28select_produucttyppe3.phhp下拉框商品类类别用于商品修修改页面Admin/iimagess存放后台界面图图片素材29Admin/aactionnlogin_ddo.phpp系统后台登陆处处理30sessionn_checck.phpp系统后台登陆判判断31admin_aadd_doo.php管理员信息添加加处理32admin_ddeletee_do.pphp管理员信息删除除处理33admin_uupdatee_do.pphp管理员信息修改改处理34newstyppe_addd_do.pphp文章类别添加处处理35newstyppe_dellete_ddo.phpp文章类别删除处处理36newstyppe_upddate_ddo.phpp文章类别修改处处理37news_addd_do.php文章添加处理38news_acction_do.phhp文章综合处理(删删除、发布、放放入回收站)39news_uppdate_do.phhp文章修改处理40productttype_add_ddo.phpp商品类别添加处处理41productttype_delette_do.php商品类别删除处处理42productttype_updatte_do.php商品类别修改处处理43productt_add_do.phhp商品添加处理44productt_actiion_doo.php商品综合处理(发发布、放入回回收站)45productt_updaate_doo.php商品修改处理46member_actioon_do.php会员信息综合处处理(启用、禁禁用、删除)47order_aactionn_do.pphp订单综合处理(发发货、结算)48Actionmember_regisster_ddo.phpp前台会员注册处处理49member_loginn_do.pphp前台会员登陆处处理50sessionn_membber_chheck.pphp前台会员登陆判判断51member_loginnout_ddo.phpp前台会员退出处处理52member_pwd_uupdatee_do.pphp会员密码修改处处理53shopcarr_do.pphp清空购物车处理理54order_aadd_doo.php提交订单处理55index.pphp网站前台主页(框框架)56index_ccontennt.phpp网站前台主页内内容页57news_liist.phhp文章列表页58news_innfo.phhp文章详细内容页页59productt_listt.php商品列表页60productt_infoo.php商品详细内容页页61shopcarr_infoo.php购物车信息页62member_regisster.pphp会员注册页63member_loginn.php会员登陆页64member_info.php会员中心主页65member_updatte.phpp会员信息修改页页66member_pwd_uupdatee.php会员密码修改页页67member_orderr_add.php提交订单页68member_orderr_listt.php会员订单列表页页69member_orderr_infoo.php会员订单详细内内容页70sub_memmber_mmenu.pphp模块-会员中中心管理菜单单71sub_newwslistt1.phpp模块文章列表表用于前台主主页通知公告72sub_newwslistt2.phpp模块文章列表表用于前台主主页交易流程73sub_prooductllist1.php模块商品列表表用于前台主主页名酒商品74sub_prooductllist2.php模块商品列表表用于前台主主页沙发商品75sub_prooductllist3.php模块商品列表表用于前台主主页皮鞋商品11.4.2 公共文件实实现公共文件的作用用是将系统中中多处使用到到的相同功能能代码编写在在单独的文件件中,然后在在使用时通过过调用该文件件。不需要重重复编写相同同代码,避免免了代码冗余余的问题、而而且有利于代代码维护和管管理。1. 数据库连连接文件步骤1:在C:AppSServwwwwweebshoppconnn文件夹中创创建Connn_DB.pphp文件,编编写数据库连连接代码如下下:<?php/* 定义数据据库连接类 */class CConnDBB /声声明成员变量量 priivate $hostt; /MyySQL服务务器地址 priivate $userrname; /数据据库用户名 priivate $passsword; /数据据库密码 priivate $charrset; /数据据库编码格式式 priivate $dbnaame; /数据据库名称 /构构造函数,实实现类的初始始化 pubblic ffunctiion CoonnDB ($hosst1, $usernname1, $passswordd1, $ddbnamee1, $ccharseet1) $thiis->hoost = $hostt1; /将参数数值赋值给成成员变量 $thiis->ussernamme = $usernname1; $thiis->paassworrd = $passwword1; $thiis->dbbname = $dbbname11; $thiis->chharsett = $ccharseet1; /成成员方法,实实现数据库连连接 pubblic ffunctiion geetConnn () $connn = mmysql_conneect($tthis->>host, $thiis->ussernamme, $tthis->>passwword); /连连接MySQQL服务器 mysqql_sellect_ddb($thhis->ddbnamee, $coonn); /选择数数据库 mysqql_queery('sset naames '' . $tthis->>charsset); /设置数数据库编码格格式 retuurn $cconn; /返回连连接句柄 $conndbb=new ConnDDB("loocalhoost",""root"","1111","WeebShopp_DB",'gbk'');/数数据库连接类类实例化$conn=$connddb->geetConnn();/获取链链接句柄?>11.5 网站站后台开发11.5.1 系统登陆模模块开发系统登陆模块由由四个文件组组成,分别是是系统登陆页页loginn.php,登登陆处理页llogin_do.phhp,登陆判判断页sesssion_checkk.php和和管理主页mmain.pphp。具体体流程如图111-5所示示。图11-5 系系统登陆模块块流程图工作原理如下:(1) 管理员员访问系统登登陆页面loogin.pphp,填写写用户名和密密码,然后点点击登陆按钮钮,将用户名名和密码提交交到登陆处理理页logiin_do.php;(2) 在登陆陆处理页中,获获取提交的用用户名和密码码,连接数据据库服务器,通通过查询语句句判断管理员员表admiin_inffo中是否存存在该用户名名和密码的记记录。如果存存在,则登陆陆成功,为ssessioon赋值,跳跳转到管理主主页mainn.php;如果不存在在,则弹出提提示对话框并并返回系统登登陆页面loogin.pphp。(3) 登陆成成功后进入管管理主页maain.phhp,还需要要进一步通过过sessiion判断是是否已经登陆陆,防止非法法用户通过输输入管理主页页地址(htttp:/locallhost:8090/webshhop/addmin/mmain.pphp)直接接进入管理主主页。如果ssessioon值为为空空,说明没有有经过登陆,则则弹出提示对对话框并返回回系统登陆页页面logiin.phpp。【实现步骤】步骤1:创建系系统登陆页llogin.php。在C:ApppServwwwwwebshoopadmmin文件夹夹中创建loogin.pphp文件,作作为系统登陆陆页面,编写写表单代码如如下:<html><head><<titlee>闽台商城城网站管理平平台</tiitle><</headd><body oonLoadd="javvascriipt:foorm1.ttxt_ussernamme.foccus()""><form nname=""form11" acttion=""actioon/loggin_doo.php"" methhod="ppost">> <tablee bordder="11" aliign="ccenterr"> <tr>><td ccolspaan="2"" aliggn="ceenter""> 闽台商商城网站管理理平台-系系统登陆</td></tr> <tr>> <<td>用户户名:</ttd> <<td><iinput type="textt" namme="txxt_useernamee" /><</td> </trr> <tr>> <<td>密码码:</tdd> <<td><iinput type="passsword"" namee="txtt_pwd""/> </td> </trr> <tr>><td ccolspaan="2"" aliign="ccenterr"><innput ttype=""submiit" vaalue=""登陆" /></tdd></trr> </tablle></form>></body>></html>>保存页面,在浏浏览器地址栏栏中输入htttp:/locallhost:8090/webshhop/addmin/llogin.php,可可浏览页面效效果如图111-6所示。图11-6 系系统登陆界面面步骤2:创建系系统登陆处理理页logiin_do.php。在C:ApppServwwwwwebshoopadmminacction文文件夹中创建建loginn_do.pphp文件,作作为系统登陆陆处理页面,获取提交的用户名和密码,并到数据库中进行查询验证用户名和密码正确,编写PHP代码如下:<?php /* 系统统登陆处理页页 */ requirre_oncce("././cconn/CConn_DDB.phpp"); /包含数数据库链接文文件 if( $_POST"txt_usernname"!="" && $_POST"txt_pwd"!="" ) /判断用户名名密码是否为为空 $namee = $_POST"txt_usernname" /获取提交的的用户名 $pwd = $_PPOST""txt_ppwd" /获取提交的的密码 $str = "seelect * froom Admmin_Innfo whhere AA_UserrName='$namme' annd A_PPasswoord='$pwd'"" / eccho $sstr; /本语句用用于调试,输输出查询语句句 $resuult = mysqll_querry($sttr); /执行SQLL语句 if( mmysql_num_rrows($resullt) >00 ) /判断返回记记录的行数 sesssion_startt(); /登陆成功,设设置SESSSION值$_SESSSION''user'' = $_POSTT'txtt_userrname'' echho "<sscriptt> winndow.llocatiion.hrref='./maiin.phpp'</sscriptt>" /跳转到管管理平台主页页 else /登登陆失败,弹弹出提示对话话框,返回登登陆页 echho "<sscriptt>alerrt('用户户名或密码错错误!');windoow.loccationn.hreff='./loginn.php''</scrript>"" else /用户名名密码为空,弹弹出提示对话话框,返回登登陆页 echho "<sscriptt>alerrt('请输输入用户名和和密码!');winddow.loocatioon.hreef='./logiin.phpp'</sccript>>" ?>步骤3:创建登登陆判断页ssessioon_cheeck.phhp。在C:ApppServwwwwwebshoopadmminacction文文件夹中创建建sessiion_chheck.pphp文件,作作为系统登陆陆判断页面,通过session判断是否已经登陆,防止非法用户通过输入管理主页地址直接进入管理主页。如果session值为为空,说明没有经过登陆,则弹出提示对话框并跳转回系统登陆面login.php,编写PHP代码如下:<?php /* 系统登登陆判断页 */if($_SEESSIONN'useer' = "") /登登陆判断,如如果没有登陆陆,跳转到登登陆页面 echoo "<sccript>>alertt('登陆超超时,请重新新登陆!'); winndow.llocatiion.hrref='llogin.php'</scrript>""?>步骤4:创建系系统管理主页页main.php。在C:ApppServwwwwwebshoopadmmin文件夹夹中创建maain.phhp文件,作作为系统管理理主页,显示示系统管理菜菜单,编写代代码如下:<html><head><<titlee>闽台商城城网站管理平平台</tiitle><</headd><body sstyle="marggin:0ppx 0pxx 0px 0px;""> <?php incluude 'aactionn/sesssion_ccheck.php' /登陆陆判断 ?> <table bordeer="1"" stylle="wiidth:1100%">><tr><tdd colsspan=""2">闽台台商城网站管管理平台</td></tr><tr><tdd colsspan=""2"></td></tr><tr><tdd widtth="1000px" valiggn="toop"><a hreef="meember_managger.phhp" taarget="mainnframee">会员信信息管理</a> <brr/><a hreef="addmin_aadd.phhp" taarget="mainnframee">添加管管理员</aa> <bbr/><a hreef="addmin_mmanageer.phpp" tarrget=""mainfframe"">管理员管管理</a>> <bbr/><bbr/><a hreef="prroductttype_add.pphp" ttargett="maiinframme">添加加商品类别<</a> <brr/><a hreef="prroductttype_managger.phhp" taarget="mainnframee">商品类类别管理</a><brr/><a hreef="prroductt_add.php" targeet="maainfraame">添添加商品信息息</a> <brr/><a hreef="prroductt_manaager.pphp" ttargett="maiinframme">商品品信息管理<</a> <brr/><brr/><a hreef="neewstyppe_addd.php"" targget="mmainfrrame">>添加文章类类别</a>> <brr/><a hreef="neewstyppe_mannager.php" targeet="maainfraame">文文章类别管理理</a> <brr/><a hreef="neews_addd.phpp" tarrget=""mainfframe"">添加文章章信息</aa> <brr/><a hreef="neews_maanagerr.php"" targget="mmainfrrame">>文章信息管管理</a>> <brr/><brr/><a hreef="orrder_mmanageer.phpp" tarrget=""mainfframe"">订单信息息管理</aa> <brr/><brr/><a hreef="./indeex.phpp" tarrget=""_blannk">网站站前台首页<</a></td><td> <ifrrame nname=""mainfframe"" stylle="wiidth:1100%; heighht:5000px" >></ifrrame> <!- ifraame框架 -></td></tr></tablee></body>></html>>步骤5:保存各各页面,在浏浏览器地址栏栏中输入htttp:/locallhost:8090/webshhop/addmin/llogin.php,进进入系统登陆陆页,填写用用户名和密码码(本案例中中用户名为aadmin,密密码为1233),通过登登陆验证成功功,进入系统统管理主页mmain.pphp,页面面效果如图111-7所示示。图11-7 系系统管理主页页面11.5.2 文章类别管管理模块开发发文章类别管理模模块由六个文文件组成,分分别是文章类类别添加页面面newsttype_aadd.phhp,文章类类别添加处理理页面newwstypee_add_do.phhp,文章类类别管理页面面newsttype_mmanageer.phpp,文章类别别删除处理页页面newsstype_delette_do.php,文文章类别修改改页面newwstypee_updaate.phhp和文章类类别修改处理理页面newwstypee_updaate_doo.php。具具体流程如图图11-8所所示。图11-8 文文章类别管理理模块流程图图工作原理如下:1. 添加文章章类别:(1) 管理员员访问文章类类别添加页面面newsttype_aadd.phhp,选择父父级类别、填填写类别名称称和简介,然然后点击保存存按钮,将类类别信息提交交到添加处理理页newsstype_add_ddo.phpp;(2) 在添加加处理页中,获获取提交的类类别信息,连连接数据库服服务器,使用用插入语句向向news_type表表中添加数据据,接着判断断添加是否成成功,成功则则进入文章类类别管理页面面newsttype_mmanageer.phpp,否则弹出出提示对话框框并返回添加加页面newwstypee_add.php。2. 文章类别别管理:管理员访问文章章类别管理页页面newsstype_managger.phhp,查看类类别信息列表表,可以选择择类别信息右右侧的“修改”或“删除”按钮,对类类别信息进行行操作。3. 删除文章章类别:(1) 管理员员在文章类别别管理页面nnewstyype_maanagerr.php,点点击类别信息息右侧的“删除”按钮,系统统跳转到类别别删除处理页页newsttype_ddeletee_do.pphp。 (2) 在删除除处理页中,获获取提交的类类别编号,连连接数据库服服务器,使用用删除语句从从news_type表表中删除数据据,接着判断断删除是否成成功,成功则则返回文章类类别管理页面面newsttype_mmanageer.phpp,否则弹出出提示对话框框并返回文章章类别管理页页面newsstype_managger.phhp。4. 修改文章章类别:(1) 管理员员在文章类别别管理页面nnewstyype_maanagerr.php,点点击类别信息息右侧的“修改”按钮,系统统跳转到类别别修改页neewstyppe_upddate.pphp。 (2) 在类别别修改页中,获获取提交的类类别编号,连连接数据库服服务器