用zdcms做网站表单时,想要用短信验证码来预防表单恶意提交,应该如何实现呢?今天就来详细说说实现步骤:
首先,打开你的表单控制器文件,通常在/dayrui/App/Form/Controllers/目录下,加入你的表单名称为baoming,则找到/dayrui/App/Form/Controllers/baoming.php,然后如下面代码所示,在中间插入一段代码:
<?php namespace Phpcmf\Controllers; /** * 二次开发时可以修改本文件,不影响升级覆盖 */ class Zxly extends \Phpcmf\Home\Form { public function index() { $this->_Home_List(); } public function show() { $this->_Home_Show(); } public function post() { //加入验证代码开始 if (IS_POST) { $phone = $_POST['data']['mtel']; // mtel为你的手机号字段名 $code = \Phpcmf\Service::L('Form')->get_mobile_code($phone); if (!$code) { $this->_json(0, dr_lang('未发送验证码')); } elseif ($code != $_POST['sms']) { $this->_json(0, dr_lang('验证码错误')); } } //加入验证代码结束 $this->_Home_Post(); } }
然后,打开的表单HTML模板,在需要短信验证的位置插入以下代码:
<div class="form-group" id="dr_row_sms"> <label class="col-md-2 control-label">短信验证</label> <div class="col-md-10"> <div class="input-group input-large"> <input class="form-control placeholder-no-fix" type="text" autocomplete="off" id="dr_sms" name="sms"> <div class="input-group-btn"> <button class="btn blue" onclick="dr_ajax_url('/index.php?s=member&c=api&m=send_code&&code='+$('#dr_code').val()+'&id='+$('#dr_mtel').val())" type="button">获取手机验证码</button> </div> </div> </div> </div> <!--注意:button按钮中#dr_mtel里面的mtel为你自定义的手机号码字段名-->
最后记得去系统设置里面配置下短信接口。
完成以上三个步骤后,就可以在提交表单时用短信验证码来核验短信了。