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事件。然后检查结果。
这种思路非常的重要,上面告诉我们在任何时候开发者都可以随意触发特定的事件。
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。