Joomla如何在自己的组件中使用系统验证码 原

redmaomail 2024-07-25 10:35 阅读数 80 #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事件。然后检查结果。

这种思路非常的重要,上面告诉我们在任何时候开发者都可以随意触发特定的事件。


红帽云邮外贸主机

分享到:
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。
    红帽云邮外贸主机
热门
    红帽云邮外贸主机
    红帽云邮外贸主机