Skip to main content
 Web开发网 » 站长学院 » 织梦教程

织梦DedeCMS自定义表单中添加验证码的方法

2020年09月12日7470百度已收录

在用DedeCMS的时候,通过自定义表单来做在线留言,这个确实比织梦自带的留言簿模块要方便,但是实现起来还是诸多bug。所以还是用Dede的自定义表单来实现比较靠谱,但是使用自定义表单之后,因为没有加验证码,导致一段时间内被人恶意攻击,填写了几千个留言,头都大了,只好去数据库中批量删除。此时之后,淘站网就加深了这个验证码的认识,不论什么样的表单,一定要记得加上验证码。

今天,淘站网就说说如何在DedeCMS的自定义表单中添加验证码,虽然在网上有很多教程,但是测试了大部分,发现都不适用,淘站网还是自己研究一下,终于自己搞定。淘站网测试的DedeCMS版本为DedeCMS V5.7 SP1

,大家可以参考一下。

一、修改自定义表单控制文件

1.打开/plus/diy.php

文件,在头部随意位置加上代码(网站开通了会员功能模块必加,没有开通会员功能则略过此步):


require_once(DEDEINC.'/membermodel.cls.php'

);
 

2.加完上述代码之后,查找代码:


elseif($do == 2

)
        {
 

在下面加上代码:


  $svali = GetCkVdValue();
                  if

(preg_match("/1/"

,$safe_gdopen)){
                          if

(strtolower($vdcode)!=$svali || $svali==''

)
                          {
                                  ResetVdValue();
                                  ShowMsg('验证码错误!'

'-1'

);
                                  exit();
                          }
                    }

修改之后保存文件并上传。

二、自定义表单模版页修改

1.引入jQuery文件(如果模版中已经引用了jQuery文件,则忽略此步。):


<script language="javascript"

 type="text/javascript"

 src="{dede:global.cfg_cmsurl/}/js/jquery.js"

></script>
 

jQuery下载:jQuery.js文件

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="/include/vdimgck.php"

align="absmiddle"

/>
 

3.添加判断验证码正确的js代码带模版底部或头部:


<script type="text/javascript"

>// <![CDATA[


$ = 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 = "../include/vdimgck.php?tag="

 + num;
}
return false

;
}
</script>
 

完成后,测试一下,效果如下图:


织梦DedeCMS自定义表单中添加验证码的方法  第1张

是不是完美实现了自定义表单中添加验证码功能?妈妈再也不怕我的网站被恶意提交表单了!

评论列表暂无评论
发表评论
Copyright Web开发网 www.kaifa5.com Some Rights Reserved.  渝ICP备2023004870号  
微信