尤明明Blog

网站建设外包|网站切图外包,技术不仅是一种专业,更是一种责任!

您的当前位置: 首页 » CMS学习 » 织梦dedecms »

dedecms自定义表单添加验证码和js验证的方法

2020-03-21   Umming   织梦dedecms    评论(0)    浏览(1272)


在用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     百度已收录

声明:本站信息由网友自行发布或来源于网络,真实性、合法性由发布人负责,请仔细甄别!本站只为传递信息,我们不做任何双方证明,也不承担任何法律责任。文章内容若侵犯你的权益,请联系本站删除!


发表评论: