APP下载

基于PHP的多功能域名销售管理系统设计

2014-04-29李怀俊彭育强

计算机时代 2014年2期

李怀俊 彭育强

摘 要: 针对目前常用的域名销售系统存在的诸如在域名注册资料获取不便、域名闲置难以及时处理等问题,研究并实现了一套基于PHP语言的多功能域名销售管理系统。介绍了系统的体系结构与设计思路,对基于MySQL的数据库、各功能模块等进行了描述;通过使用Smarty的前台模板引擎,解决了对注册商的域名进行分类、多条件管理、编辑等问题。系统运行表明,该方法符合域名管理规范,能有效提高域名管理质量。

关键词: PHP; 域名销售; MySQL; 数据库表; smarty

中图分类号:TP315 文献标志码:A 文章编号:1006-8228(2014)02-36-04

0 引言

域名是实现网络访问的基础,没有域名指数的增幅显示,业界就无从得知网站的生存状况。随着国际互联网的蓬勃发展,其应用渗透到社会生活的各个方面,成为人们生活和工作的基本环境。大量的企业应用互联网络开展电商业务,由此开始了注册符合自己企业特征的网络域名争夺战,在大量的域名资源已经被注册的情况下,要获得具有商业价值的域名,域名交易就成为不可缺少的一环[1]。

目前,在国内外应用中仍缺乏完善的Web域名销售管理系统。有一小部分域名持有人拥有能实现域名展示、域名介绍和域名价格的Web站点,而大部分域名持有人仅仅拥有一些简单的静态html页面组合,功能相对落后,页面内容的添加和编辑都只能依靠对页面的源码进行修改[2],而且对域名注册资料的获取,客户报价等都无法实现。

本文基于PHP技术和MySQL数据库、Apache服务器环境和Smarty模板引擎开发系统,设计了Web域名多条件查询和管理系统。该系统基于B/S模式,主要处理域名分类、查询和文章发布等各环节,具有良好的人机界面;在相应的权限下,可方便地删除数据;自动获取域名注册信息,包括注册人、所属注册机构、注册时间等内容,减少人工干预;对于获得客户报价或过期域名邮件提醒;对于域名和新闻管理列表,可根据组合查询条件动态显示查询结果[3-4]。

1 系统体系结构

PHP(Hypertext Preprocessor)是一种服务器端HTML嵌入式脚本描述语言,在Web应用开发中得到了广泛应用[5]。其最强大和最重要的特征就是跨平台、面向对象、执行效率高。客户端只需要安装浏览器,即可通过HTTP协议向Apache服务器提出请求,服务器站点收到请求后,解析PHP文件,然后连接数据库,执行指定的SQL语句。查询到结果后返回给Apache服务器。Apache服务器根据数据库中返回来的数据生成HTML文档返回给浏览器。系统结构如图1所示。

多功能域名销售管理体系结构分为前台和后台两个部分。

前台页面模板中,只需调用本系统独有的模板标签,即可根据使用者所喜好的样式来展示各种不同内容,包括列表,文章列表,域名详情页面,文章详情页面,报价表单,栏目导航等。用户打开前台的页面可轻松地浏览域名信息,可以根据多种条件组合查询、获取所需的域名信息,对于域名详情页,有对相应域名报价的入口功能,用户可对心仪的域名进行报价,同时,前台还可以针对搜索引擎进行优化,展示用户需要的文章,例如站点公告,业界资讯等。

对于后台管理,管理员可以对网站进行全面的管理,可以添加域名分类,系统允许添加无限级子分类;同时也可以对已有的域名分类,进行修改和排序;可对域名列表进行综合管理,包括添加,编辑,删除和排序等;可对文章分类和文章列表进行与域名分类同样的管理。

2 系统设计

系统设计首先是提供域名发布功能和域名分类管理;其次是实现用户交互,用户可在前台对心仪的域名进行报价;最后是实现对大量域名信息的综合管理。要实现这庞大的功能,首先基于域名系统DNS(Domain Name System)、邮件传输协议SMTP协议(Simple Mail Transfer Protocol),通过识别不同的域名后缀,来取得相应的DNS服务器,通过网络通信向服务器发送查询请求,获取相应的域名whois信息。前台提供用户报价入口。通过SMTP类,及时向管理员发送邮件通知。

2.1 功能模块描述

根据域名管理系统应具有的基本功能,将系统分为12个功能模块。

⑴ 域名批量添加/导入模块:该模块的主要功能是实现以不同方式来添加域名,且支持批量添加操作。添加方式主要有两种,一种是文本形式,另一种是上传TXT文件的形式。添加格式为:不同的域名以换行区分,域名与域名简介以空格或以“~”隔开。域名批量导入的方式为上传CSV格式的文件。由于几乎所有注册商用户管理系统都有导出域名为CSV格式的功能,因此批量导入功能对于不同注册商域名的汇总非常方便。

⑵ 域名whois模块:该模块主要用来获取域名的注册资料信息。通过socket通信将不同域名种类发送到相应的域名whois服务器,服务器将返回域名的注册资料信息,包括注册人、联系邮箱、注册日期、过期日期、所属注册商等。该模块可以查询的域名种类有86种,最常用的是com域名和cn域名。

⑶ 域名管理模块:该模块主要用来对列表中的域名进行删除或编辑操作,是系统最为重要的模块之一。系统列表支持对分类、后缀和用户自定义关键词进行组合查询。域名删除支持单个操作和多个操作,系统管理员可将不再需要管理的域名删除。执行删除操作时,系统有删除确认提示,只有当管理员选择确认的时候,域名才会被删除,以避免域名被误删除。域名编辑是对域名信息表d_domain中的除ID以外的所有字段进行操作。对于域名的注册资料信息,可以通过域名whois模块自动获取,这样既保证信息准确,又减少了手工输入量。

⑷ 域名分类管理模块:该模块主要用来管理域名分类信息。可以添加无限级的分类。在分类列表管理页中,可以对分类进行添加,编辑,删除和排序操作。每一个分类都有一个标识ID和父级分类标识,有利于搜索引擎对前台分类列表页的收录效果。

⑸ 域名检索模块:该模块主要用于域名的查找。用户在查找输入框中输入关键词,系统将此关键词进行相似匹配。如果匹配成功,系统将得到的记录格式化后输出到浏览器,并将匹配到的关键字部分以红色标记出来。

⑹ 报价管理模块:该模块用于客户对域名的报价信息的管理。当用户浏览域名信息时,对心仪的域名点击相应的报价联系,进入报价表单填写页,当用户完成报价点击“提交”时,系统则将客户报价信息插入到数据表d_offer中,包括客户填写的姓名、联系电话、邮箱、域名、价格。

⑺ 文章添加模块:该模块主要用于文章信息的录入。内容输入使用FCKeditor可视化HTML编辑器,FCKeditor是一个专门使用在网页上,开放源代码的所见即所得文字编辑器,它属于轻量化,不需要太复杂的安装步骤即可使用[6]。

⑻ 文章管理模块:该模块主要用来对列表中的文章进行删除或编辑操作,其基本功能与域名管理模块相似。同时实现文章的分类管理,分类可以添加子分类,且可以添加无限级的分类。其表单字段类型和功能与域名分类管理模块一致。

⑼ 模板标签dnlist模块:该模块主要是自定义的smarty标签块函数,用来指定域名列表。

⑽ 模板标签arclist模块:该模块主要是自定义的smarty标签块函数,用来指定文章列表。

⑾ 模板标签pagelist模块:该模块主要是自定义的smarty标签块函数,用来显示分页列表。

⑿ 报价邮件提醒模块:该模块主要用于当客户对心仪域名报价时自动发邮件通知管理员。

2.2 数据库设计

数据库设计是域名管理系统的核心部分。数据库设计直接决定系统的功能流程和运行系统的效率。本系统采用MySQL作为数据库储存长期保存的信息,数据库名称为newdomain,其中包含8张数据表,数据表统一以取domain(域名)的第一个字母”d”加下划线为前缀,即”d_”。根据前面的设计规划出的实体主要有管理员实体、客户信息实体、域名信息实体、域名分类实体、文章信息实体、文章分类实体、系统信息实体。综合上述各实体以及需求分析所得的各实体的关系,可得系统E-R图如图2所示。

3 基于Smarty的前台模块功能

Smarty是基于PHP的模板化引擎,它把程序应用逻辑和单个呈现逻辑分离,让程序开发者专注于资料的控制或者功能的达成;而视觉设计师可专注于网页的排版。Smarty具有强大的功能,主要包括①强大的表现逻辑:Smarty提供了适当的构造,能够有条件地计算和迭代地处理数据;②模板编译:为减少开销,Smarty在默认情况下将模板转换为可比较的PHP脚本,使得后续的调用速度更快;③缓存:Smarty还提供了缓存模板的可选特性,支持缓存不只是能生成缓存的内容,还能防止执行个别逻辑。④高度可配置性和可扩展性:Smarty的面向对象架构允许修改和扩展其默认行为[7-8]。此外,从一开始可配置性就是一个设计目标,为用户提供了很大的灵活性,通过内置方法和属性定制Smarty的行为。

以下介绍基于Smarty实现的模块功能。

3.1 管理员验证管理

创建管理员时,管理员密码通过MD5()函数加密后保存到数据表d_admin中的password字段中。验证时,系统首先查找数据库,判断填写的用户名是否存在,如果用户名存在,则进而将用户填写的密码通过md5加密,然后在数据库中作相应用户名记录中的密码比对,如果两者相等则判定其登录成功,并建立浏览器与服务之间的会话信息。登录界面如图3所示。

3.2 域名的添加

前面已经介绍了域名添加模块中有两种添加域名的格式。一种是文本格式,另外一种是导入CSV格式的方式。域名导入后的结果如图4所示。

3.3 域名的分类

如前面所介绍,域名支持无限制分类。系统通过网址中的action参数来识别增加或编辑操作。分类管理界面如图5所示。

3.4 域名列表

域名列表的的展示是根据网址中的分类(cid)参数,后缀(ltd)参数,关键词(keyword)参数对数据库进行查询的结果,分页大小(pagesize)参数结合分页类对查询结果进行分页显示如图6所示。

3.5 域名的编辑

域名编辑是通过网址中的id参数获取所要修改的域名标识,然后通过对数据表d_domain查询,将该记录下除ID以外的所有字段分别置于不同表单元素中,管理员对编辑表单填写完成后,系统对该记录下所有字段更新新的值。

3.6 模板标签dnlist设计

模板标签dnlist原理是在标签属性中添加控制参数,根据控制参数对数据表d_domain进行查询,将返回的字段值复制给底层模板相应的字段,如图7所示。

4 结束语

采用PHP编程语言、以MySQL数据库及Apache服务器为开发环境、运用Smarty模板引擎是成功实现多功能域名管理系统的有效方案,比较其他web域名销售管理系统,本文设计的PHP多功能域名销售系统很好地解决了闲置域名不能通过有效的资源配置渠道及时售出、部分域名由于过期未能及时续费而被误删除、域名持有者由于无法获得买方资料在价格谈判过程中处于被动等若干实际问题[9-10]。此外,系统带有文章阅读功能,除了发布本站动态信息之外,还具备咨询、互动功能,当使用者在文章内适当添加与域名相关的关键字时,即可通过搜索引擎为其网站带来潜在的客户。运行效果验证了该新型PHP多功能域名销售管理系统功能完善,可满足行业多方面需求。

参考文献:

[1] 中国互联网络信息中心(CNNIC).第32次中国互联网络发展状况统计报告[R],2013.

[2] 薛虹.全球域名系统知识产权保护措施最新发展研究[J].知识产权,2012.36(1):82-91

[3] 邹天思,潘凯华,刘中华.PHP数据库系统开发完全手册[M].人民邮电出版社,2012.

[4] 韩万江.软件工程案例教程[M].机械工业出版社,2008.

[5] 丁翔,仇寅,郑滔.一种利用PHP防御SQL注入攻击的方法[J].计算机工程,2011.37(11):153-155

[6] Jaimie Sirovich.搜索引擎优化高级编程[M].清华大学出版社,2008.

[7] Luke Welling, Laura Thomson. PHP and MySQL Web Develop-ment(3rd Edition)[M].USA: Sams,2008.

[8] Ken Coar, Rich Bowen. Apache Cookbook: Solutions andExamples for Apache Administrators[M]. USA: O'Reilly Media Inc.,2009.

[9] 仝戈,张武装.Smarty在基于MVC框架的Web应用程序开发中的应用[J].科技信息,2009.78(4):839-840

[10] 王凤玲.基于PHP+MYSQL的新闻发布系统的研究与实现[J].计算机应用与软件,2012.29(2):234-236