APP下载

基于PHP的招聘报名系统设计与研究

2014-04-29刘耀钦袁承芬

计算机时代 2014年5期
关键词:S结构

刘耀钦 袁承芬

摘 要: 以PHP为主要开发技术,采用Smarty模板引擎构建了基于B/S的Web应用系统——招聘报名系统。该系统有着高效率、高性能、可扩展等优点,其 B/S三层体系结构统一了客户端,集功能于服务器,简化了应用开发,Smarty模板引擎以其智能的分离逻辑,有效地实现了视图与源码的分离,缩短了开发周期,同时降低了维护成本。

关键词: B/S结构; MVC模式; Smarty模板引擎; 招聘报名

中图分类号:TP311 文献标志码:A 文章编号:1006-8228(2014)05-39-03

Abstract: A Web application system, recruitment registration system based on B/S, is constructed by using PHP as a main development tool and applying Smarty module engine. It has advantages such as high efficiency, high performance, scalability, etc. B/S three-tier architecture unifies client terminals, set the function into the server, and simplifies application development. Smarty module engine with its intelligent separation logic effectively separates view and source code, shortens development time and reduces maintenance costs.

Key words: B/S structure; MVC pattern; Smarty module engine; job application

0 引言

人事招聘报名系统是人事工作中非常重要的一项工作,接收报名的传统形式是应聘者必须亲自带上简历去招聘单位现场报名,这势必会花费大量的人力、物力和财力,在计算机及互连网技术不断深入发展的今天,基于Web的招聘报名系统已经成为人力资源管理部门的必备工具之一。PHP作为一种开源式的跨平台服务器端的嵌入式脚本语言[1],具有高效率、可扩展等诸多优点,加之多数据库类型的支持,其中尤以PHP+MySQL组合为最佳,使得开发出来的基于B/S模式的应用系统能高效率地安全运行,有效地简化了传统报名形式繁杂多余的工作程序,降低了运行成本,提高了人事工作的透明度和可信度。

1 框架结构与设计模式

1.1 框架结构

应用系统的开发通常有C/S、B/S两种架构[2],随着互连网的快速发展及数据存储能力技术的不断提升,C/S架构即客户端/服务器结构,具有强交互性、高可靠性等优点,但运行成本较高,工作量较大。B/S架构即浏览器/服务器结构,是C/S结构应用的扩展,用户通过客户端浏览器向相应服务器发送资源请求,服务器根据接收到的请求查找并向用户浏览器输出相应结果B/S三层的体系结构分为表示层、逻辑层、数据层,服务运算被分布在客户端和服务器端且统一了客户端操作,将系统功能的实现集中到服务器上,简化了系统应用开发、维护和使用规程。表示层是位于客户端的应用系统的显示逻辑,主要用于向服务器发送资源请求并接收输出服务器发送来的运算结果;逻辑层则是位于服务器端的事务处理逻辑,主要用于对数据层的业务逻辑处理;数据层则是位于服务器端的数据处理逻辑,用于接收服务器对数据库查询、修改、更新等操作请求,并将对数据库操作的结果提交给服务器。

1.2 设计模式

模式是一种解决某类问题通用的最佳方法[3]。基于Web的应用项目开发采用的设计模式有多种,其中MVC设计模式应用非常广泛。MVC模式是模型层、视图层、控制器层三者的集合,用一种显示分离的业务逻辑组织代码,模型层负责存取数据,用于处理应用程序的数据逻辑部分,视图层主要用于表示模型处理数据的显示方式,控制器层负责控制用户输入、读取视图层数据并向模型层发送数据。

在一个Web应用项目中,MVC组件中的各个部分各自分工完成不同任务且又紧密联系。MVC设计模式最突出的一个特点就是,多个视图可以共享一个模型,并且数据和业务规则分离于表示层,使代码重用度得到最大化的提高。另外由于模型自包含且分离于控制器层和视图层的特性,则会很容易改变数据层和业务规则,如要移植数据库(从一种数据库转换成另一种数据库)只需要改变模型即可,也就是说,只要正确使用模型,无论采用哪种数据库或数据源,视图都会正确显示。MVC设计模式的这些特性使得实现一个表现丰富、强内聚弱耦合且易于扩展的Web应用项目变得极为轻松。

2 系统功能框架

本文所涉及到的招聘报名系统主要根据高校人才引进工作流程和政策而设计,整个系统功能框架如图3所示。整个系统的用户角色分为管理员、应聘者、分阅简历人员三大类型,给不同的角色赋予不同的权限。首先,管理员根据本单位招聘工作的实际情况拟定并发布招聘岗位计划及各岗位招聘条件,然后应聘者通过本系统注册用户信息,获取使用系统的权限,登录系统后,第一步查看并选择应聘岗位,第二步根据系统向导填写简历并随时预览简历(待报名时间结束并经单位资格审核通过后,设置各应聘者的简历状态并通知参加考试),第三步查看笔试、面试成绩及当前简历状态。

报名时间结束后,分阅简历人员根据拟定的岗位条件,结合应聘人员的情况,把自己的意见或建议反馈给单位人事负责人,负责人依据这些意见并结合岗位拟定条件,可以事先设定特殊人员,比如应聘人员A,除了年龄略超外其他都符合条件,如果单位同意则可将其设置为条件放宽状态。对大批量应聘人员的简历状态可以使用系统自动筛选功能来设置,最后将事先设定好的参加考试时间和地点通知给符合条件人员,进而分配考场并输出准考证,待笔试环节结束后输入笔试成绩并根据拟定条件设定拟参加面试人员并通知面试时间及地点,最后输入面试成绩,并结合笔试成绩确定拟录用人员并公示。

3 系统实现的关键技术

3.1 Smarty模板

Smarty是一种使用PHP开发的模板引擎程序,也是目前使用最为广泛的模板引擎之一。Smarty提供了一种将原本与HTML混合在一起的PHP分离的逻辑,使得逻辑内容的改变不会影响前台视图,不仅缩短了复杂业务系统的开发时间,而且提高了系统的可维护性和可扩展性[4]。Smarty模板有如下特点。

⑴ 智能的模板编译机制:Smarty模板程序运行时需要编译成一个非模板的PHP文件,之后即可直接执行这些PHP脚本文件,不再利用服务器资源进行模板文件语法的解析[5],提高了程序的运行效率。

⑵ 高效的缓存机制:Smarty模板引擎将用户最终看到的视图(HTML文件)用缓存来保存,在cache属性为true时,Web请求直接映射到这个静态的HTML文件,极大的加快了Smarty模板中display及fetch的执行速度。

⑶ 灵活的插件机制:插件是一种遵循一定规范的应用程序接口,是组件复用技术的一种[6]。在Smarty中,插件就是一些自定义的函数,Smarty允许程序员自定义插件,即允许程序员自定函数以实现某些特定的功能。

Smarty将应用程序分成视图与逻辑控制两部分[7],形成了独特的表现逻辑机制,有效地实现了视图与代码的分离。

3.2 数据库的持久连接

数据库连接池[8]初始化时创建一定数量的连接放在连接池中,当用户访问数据库时,直接在连接池中取出一个空闲连接即可使用。PHP本身没有连接池,但基于PHP的应用程序开发的服务器工具Apache却有进程池的概念,一个Apache子进程运行结束后即被放回进程池,以保证PHP的持久化连接资源不被释放掉。数据库的持久化连接是指应用程序脚本运行结束后不关闭连接。当应用程序发生持久连接请求时,PHP会自动检查是否已经存在一个与请求相同的持久连接,如果存在这个连接,将使用这个连接,否则将重新建立一个新的连接。基于PHP的Web应用程序的数据库连接的持久化是通过mysql_pconnect实现的,持久化连接的建立大大提高了应用程序的运行效率。

4 系统安全

基于Web的应用系统所面临的威胁主要有SQL注入攻击、拒绝服务攻击、恶意代码注入、非法用户攻击服务器[9]等,这些恶意行为会造成用户数据丢失和破坏,严重者会造成服务器停止工作甚至硬件损坏。Web应用系统的安全措施主要从输入、程序代码和参数设置等方面防范。从程序和参数设置角度讲,本招聘系统主要从三个方面采取了预防措施。

⑴ SQL注入的预防:SQL注入[10-11]是众多攻击方式中的一种,它通过将恶意代码插入到正常SQL字符串中执行,以获取相关信息达到破坏攻击目的。这种方法隐蔽性较强,破坏性大,常见有逻辑错误判断、联合查询、推理猜测、编码变换等攻击手段[11],通常以URL附带的参数及表单提交数据为入口。

⑵ 拒绝服务攻击DDoS:DDoS的基本原理是利用合理的服务请求来占用过多的服务器资源,直至目标服务器无法提供正常的服务。非法用户通过利用POST方式提交的参数构造数组产生大量哈希碰撞,达到DDoS的目的,可以通过限制POST数据提交数量或升级PHP版本至5.3.9及以上版本即可有效控制DDoS。

⑶ 参数安全性设置:在PHP配置文件中,如果完善参数配置可大大增强Web应用系统的安全性能。比如设置magic_quotes_gpc=On,则PHP会自动对提交的SQL语句进行转换验证,有效降低了SQL注入的可能性。Apache中通过设置display_errors=Off禁止输出程序运行的错误信息以防止用户从错误信息中找到相应攻击入口,或设置allow_url_fopen=Off禁止远程获取服务器内容等。

5 结束语

PHP是一种开源的动态服务器端运行的脚本语言,在当前的Web应用程序开发中占有重要地位,Smarty模板引擎以其智能的模板编译机制、高效的缓存机制以及灵活的插件机制等特点而出名。采用Smarty模板引擎以PHP为主要开发技术构建的基于B/S模式的人才招聘系统,具有体积小、运行效率高、安全性能强等优点。目前,该系统已正式上线运行,不仅降低了工作人员的工作力度,而且大大缩短了工作时间,降低了成本,提高了效率。随着单位人才引进需求的不断增长,该系统也表现出了很多不足之处,比如报表打印及输出、语义信息的判断与挖掘等,其中简历信息的语义信息挖掘将是今后研究的重点。

参考文献:

[1] 刘耀钦,袁承芬.Web系统移植的PHP+MySQL设计研究[J].计算机

系统应用,2008.8:102-104

[2] 张洪雷,占学刚.基于B/S模式人事管理信息系统的构建[J].辽宁科

技大学学报,2008.31(34):321-326

[3] 刘耀钦,袁承芬.MVC设计模式在Web开发中的应用与研究[J].信息

安全与技术,2013.11:78-80

[4] 郭红霞,陈斌,潘斌等.基于Smarty的学科信息管理平台构建[J].成都

大学学报,2012.31(4):408-410

[5] 高彥卿.用Smarty实现基于MVC模式的Web应用程序开发[J].电脑

知识与技术,2007.7:461-462,565

[6] 瞿连政,卢冰,战术互联网中基于插件技术的设备监控方法[J].计算

机应用与软件,2013.30(1):245-247

[7] 冯兴利,徐墨,锁志海.基于模板引擎Smarty的信息管理系统设计[J].

现代电子技术,2012.35(8):25-28

[8] 孟培超,胡圣波,舒恒等.基于ADO数据库连接池优化策略[J].计算机

工程与设计,2013.34(5):1706-1710,1715

[9] 冯兴利,锁志海,徐墨.基于PHP+MySQL的Web系统安全防范及全

站静态化[J].现代电子技术,2012,35(8):25-27

[10] 杨飚.基于Web应用的系统安全策略[J].科技视界,2012.31:186,

255

[11] 马凯,蔡皖东,姚烨.Web2.0环境下SQL注入漏洞注入点提取方法[J].

计算机技术与发展,2013.23(3):121-124

猜你喜欢

S结构
基于Java的BBS开发
基于PHP的发印管理系统的实现
基于Java的网上商城开发
基于B/S结构的通信部队训练管理系统的设计研究
新型职业农民培育远程视频监管系统设计与实现
基于B/S技术网上选课管理系统的研究
B/S 结构软件的系统测试方法研究
基于ASP.NET 的图书管理系统
基于C/S结构的机务维修工程类综合实验教学平台建设与实践
基于网络的高校教材管理系统的研究