Joomla如何在自己的组件中使用系统验证码 原
最近要做一个用户中心,其中有一项功能是能够绑定手机号。功能并不是很复杂,由于我以及实现了短信验证码插件,绑定手机号其实就是让用户输入自己的手机号,然后给他发一个短信验证码,确认这个手机号是这个用户的,只要短信验证码填对了,就可以进行绑定了。整个功能看起来就是一个短信验证码。为了偷懒,我想能否在自己的开发的扩展中直接调用系统的验证码插件呢。如果可以,那么我一行代码都不用写,岂不美哉!
经过查看系统的源代码,发现其实现并不困难。只要完成下面三步即可
在form表单中加入验证码
代码很简单
<field
name="phone"
type="phone"
description="请输入手机号"
hint="请输入手机号"
filter="string"
label="手机号"
required="true"
class="validate-phone layui-input"
icon="uk-icon-mobile"
size="30"
/>
<field
name="captcha"
type="captcha"
label="短信验证码"
twopart="7:3"
class="phonecaptcha layui-input "
description="短信验证码"
hint="短信验证码"
icon="uk-icon-shield"
required="true"
validate="phonecaptcha"
/>
这样在在前台界面就产生了一个验证码
服务器端校验
前台验证码已经产生了,下一步就是在服务器端进行校验了。校验的代码也很简单
JPluginHelper::importPlugin('captcha');
$dispatcher = JDispatcher::getInstance();
$result = $dispatcher->trigger('onCheckAnswer',$data['captcha']);
if(!$result[0])
{
$this->setError($data['captcha']."您输入的短信验证码不正确,请重新输入!");
}
上面的代码非常的清楚,直接在组件中验证码checkAnswer事件。然后检查结果。
这种思路非常的重要,上面告诉我们在任何时候开发者都可以随意触发特定的事件。
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。