dedecms自定义表单添加验证码和js验证的方法
2020-03-21 Umming 织梦dedecms 评论(0) 浏览(1704)
在用dedecms(织梦cms)的时候,大家一般都会用到留言板,但织梦自带的留言板有太垃圾了,这个时候我们就要用到自定义表单,但是使用自定义表单呢又因为没有验证码功能,会导致你的网站被人的恶意攻击,给你添加了上千条留言,这样会比较头疼,只好去数据库中批量删除,所以就有必要给留言板添加验证码功能,我们肯定会问怎么添加呢,请看下面
DedeCMS版本为DedeCMS V5.7 ,大家可以参考一下。
一、修改自定义表单控制文件
1.打开/plus/diy.php文件,在头部随意位置加上代码(网站开通了会员功能模块必加,没有开通会员功能则略过此步):
require_once(DEDEINC.'/membermodel.cls.php');
2.加完上述代码之后,查找代码:
else if($do == 2){
在下面加上代码:
$svali = GetCkVdValue(); if(preg_match("/1/",$safe_gdopen)){ if(strtolower($vdcode)!=$svali || $svali=='') { ResetVdValue(); ShowMsg('验证码错误!', '-1'); exit(); } }
修改之后保存文件并上传。
二、自定义表单模版页修改
1.引入jQuery文件(如果模版中已经引用了jQuery文件,则忽略此步。):
2.在需要插入验证码的地方加上代码:
<input id="vdcode"style="width: 50px; text-transform: uppercase;" type="text" name="vdcode" /> <img id="vdimgck" style="cursor: pointer;" onclick="this.src=this.src+'?'" src="{dede:global.cfg_basehost/}/include/vdimgck.php" align="absmiddle" />
css部分大家自行解决了。
3.在顶部或者表单上面添加layer.js插件来美化错误信息提示,因为alert真的是太不美观了!
<script src="https://cdn.bootcss.com/layer/1.8.5/layer.min.js"></script>
4.添加判断验证码正确的js代码带模版底部或头部:
$ = jQuery; function changeAuthCode() { var num = new Date().getTime(); var rand = Math.round(Math.random() * 10000); num = num + rand; $('#ver_code').css('visibility', 'visible'); if ($("#vdimgck")[0]) { $("#vdimgck")[0].src = "{dede:global.cfg_basehost/}/include/vdimgck.php?tag=" + num } return false } $("#topmess-sub").click(function() { if ($("#gsmc").val() == '') { layer.msg("公司名称不能为空!"); return false }; if ($("#qqh").val() == '') { layer.msg("QQ号不能为空!"); return false }; if ($("#name").val() == '') { layer.msg("姓名不能为空!"); return false }; if (!$("#name").val().match(/^[\u4e00-\u9fa5]{2,4}$/i)) { layer.msg("请正确填写姓名!"); return false }; var tel = $("[name='tel']").val(); var filter_mobile = /^(((13[0-9]{1})|14[0-9]{1}|15[0-9]{1}|16[0-9]{1}|17[0-9]{1}|18[0-9]{1}|19[0-9]{1})+\d{8})$/; if (!filter_mobile.test(tel) || tel.length != 11) { layer.msg('手机号格式不正确!'); $("[name='tel']").focus(); return false } if (!$("#idser input[type='radio']").is(':checked')) { layer.msg("请选择您需要的服务!"); return false }; if (!$("#idtype input[type='radio']").is(':checked')) { layer.msg("请选择您最关注的地方!"); return false }; if (!$("#idys input[type='radio']").is(':checked')) { layer.msg("请选择您的预算!"); return false }; if ($("#vdcode").val() == '') { layer.msg("验证码不能为空!"); return false }; if ($("#vdcode").val().length != 4) { layer.msg("请正确输入4位验证码!"); return false } })
是不是完美实现了自定义表单中添加验证码功能?妈妈再也不怕我的网站被恶意提交表单了!
标签: dedecms
本文链接:https://www.umming.com/dedecms/232.html
声明:本站信息由网友自行发布或来源于网络,真实性、合法性由发布人负责,请仔细甄别!本站只为传递信息,我们不做任何双方证明,也不承担任何法律责任。文章内容若侵犯你的权益,请联系本站删除!
发表评论: