前面几章谈过一写有关验证码插件的事情,也写了一个简单的验证码插件。今天打算对验证码插件进行一下改进,通过对日志的分析,了解到了一些以前没有注意的内容。

以前写验证码插件,都是自己去获得想要的参数,根本对系统传递进行的参数漠不关心,使得做了很多无用功。其实有很多事情,joomla已经帮我们做好了。

首先我们分析一下下面的几个函数:

public function onCheckAnswer($code)

public function onDisplay($name, $id, $class)

public function onInit($id)

public function __construct($subject, $config)

onCheckAnswer($code)的参数$code

这个参数,实际上就是用户在前台表单输入的验证码的值。

onDisplay($name ,$id ,$class)

这 个几个参数实际上是joomla通过解析XML后获得参数,$name表示表单字段的名称。也就是name属性的值(当然系统做了一些修改之后),$id 属性就是表单字段的id。$class属性就是表单字段的class属性了。看过前台校验你就会明白为什么系统要给你传递一个$class属性。应 为$class属性和前台校验有关。我们可以通过对$class属性进行改写,来实现前台校验。

__construct($subject,$config)

重点数一下$subject.这个参数也是很有用的。在验证不成功的时候,我们可以通过下面的代码:

$this->_subject->setError(JText::_('PLG_ZMCAPTCHA_CAPTCHA_NOT_CORRECT'.$inputCode.' - '.$zmaxCode));

给用户输出一条提示信息。

onInit($id)

这个$id就是表单的id了。

评论

    • 未找到评论