给dedeCMS自定义表单加验证码防恶意灌水

使用dedeCMS制作网站,经常会用到自定义表单来接收客户提交的数据,但是由于提交太方便,即使是手动添加了比较彪悍的全能表单数据验证JS,依然无法遏制一些无聊人士的恶意灌水。而dedeCMS的自定义表单一旦被灌水,成千上万的垃圾数据,删起来要费很大的劲。

如何去预防呢,我们应该防患于未然,并就地取材,既然dedeCMS的留言板、投稿、后台均有验证码,为什么不给自定义表单也加上验证码呢?下面我们看看,如何利用dedeCMS自带的验证码功能,来给自定义表单添加验证码

第一步:在前台先增加调用验证码:

<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” alt=”看不清?点击更换” align=”absmiddle” />
看不清? <a onclick=”changeAuthCode();” href=”javascript:void(0)”>点击更换</a>

仅仅在前台添加验证码是不够的,由于只有验证码没有验证过程,所以现在加上的验证码不过是摆设。我们还要修改一下源码,才能达到我们最终的目的。

第二步:找到dede插件目录plus下的自定义表单源码文件diy.php,在第2行的后面增加:

require_once DEDEINC.’/membermodel.cls.php’;

这个语句是增加验证码检测的包含文件。

第三步:再在该文件下的elseif($do == 2) { (第20行) 内增加以下代码

//验证码
$svali = GetCkVdValue();
if(preg_match(“/1/”,$safe_gdopen)){
if(strtolower($vdcode)!=$svali || $svali==”)
{
ResetVdValue();
ShowMsg(‘验证码错误!’, ‘-1’);
exit();
}
}

好了,现在大功告成了,提交测试数据,恭喜,dedeCMS自定义表单添加验证码成功!

Published by 小车

网站技术工人