PHP项目开发全程实录(第4版)
上QQ阅读APP看书,第一时间看更新

2.9 技术支持模块设计

视频讲解

技术支持模块主要是从浏览者的角度进行设计,存储大量技术问题的解决方案数据,为浏览者查阅提供方便,而且设计一个企业与客户沟通的平台,能够随时了解客户或者会员的意见和需求。

2.9.1 技术支持模块概述

技术支持模块主要由3个子模块组成,包括常见问题、客户反馈和联系方式。常见问题模块主要用于展示编程中一些常见问题的解决方案或者方法,为浏览者解决编程中的疑难问题提供方便;客户反馈模块主要用于收集和获取来自客户的需求和意见;联系方式模块主要用于展示企业的形象和具体的联系方式。

2.9.2 技术支持模块技术分析

技术支持模块中在对常见问题解决方案的数据进行输出时,使用了分页处理技术,该技术的设计思路是:从数据库中读取数据,获取数据总量,在每页中显示20条数据,根据数据总量和每页显示的条数对数据进行分页处理,计算出有多少页和当前显示的页码,实现首页、上一页、下一页和尾页之间的页面跳转。具体的设计思路可以参考cjwt.php文件中的代码注释和代码贴士。cjwt.php文件的程序代码如下:

例程06 代码位置:资源包\TM\02\bcty365\cjwt.php

代码贴士

❶$total:为数据库中数据总的记录数。

❷isset()用于检测变量是否已经设置;is_numeric()用于检测变量是否为数字或者数字字符串。

❸$page:变量为页码中的第几页。

❹intval():获取变量的整数值。

❺$pagesize:表示在每页中显示多少条数据。

❻ $pagecount:表示所有的数据可以分成多少页。

❼ ceil():获取变量中的整数值,这里用于获取页码的整数值。

❽ $_SERVER["PHP_SELF"]:服务器变量,这里用于获取网页的链接地址。

2.9.3 常见问题的实现过程

 常见问题使用的数据表:tb_cjwt

图2.24 常见问题模块的运行结果

常见问题子模块实现的主要功能是展示出数据库中存储的有关编程中遇到的常见问题及解决方案。其运行结果如图2.24所示。

该模块由两个文件组成,一个是cjwt.php文件,用于存储创建问题数据,详细内容可以参考2.9.2节;另一个是lookcjwt.php文件,用于输出cjwt.php文件中对应问题的详细介绍和解决方案。代码如下:

例程07 代码位置:资源包\TM\02\bcty365\lookcjwt.php

2.9.4 客户反馈的实现过程

 客户反馈使用的数据表:tb_user、tb_leaveword

图2.25 客户反馈模块的运行结果

客户反馈子模块为客户提供了一个反馈意见和提出要求的平台,并且将提交的信息存储到数据库中。其运行结果如图2.25所示。

该功能只对本网站中的会员开通,即只有以会员身份登录的用户才具有反馈信息的权限,其中在对提交表单的细节处理上使用JavaScript脚本来验证表单中的值是否为空,而且还使用了数字验证码技术。对表单中提交的数据进行处理是在saveleaveword.php文件中完成的,该文件主要用于对表单中提交的数据进行处理,将数据存储到数据库中。代码如下:

例程08 代码位置:资源包\TM\02\bcty365\saveleaveword.php

2.9.5 单元测试

在对客户反馈模块进行测试的过程中,当提交反馈信息时,提示“留言发表失败!”。经过初步的判断,问题可能出现在向数据库添加数据的过程中。为进一步查找出问题的根源,在saveleaveword.php页中应用了mysqli_error()函数,该函数可获取详细的错误信息,将它放置在insert添加语句之后,然后重新运行网页,运行结果如图2.26所示。

图2.26 应用mysqli_error()函数获取的错误信息

在该结果图中可以看出,在向数据表中添加数据时字段不匹配,经过仔细检查发现,原来是在编写insert添加语句的过程中缺少了一个字段createtime,如图2.27所示。

图2.27 代码中的错误截图

在insert语句中添加createtime字段,重新运行程序,提示“留言发表成功!”。