使用织梦dedecms的自定义表单过程中,自定义表单是非常实用的工具,比如在线留言、提交订单等,但是如何加入验证码,防止恶意提交呢?
1、首先找到自定义表单的模板。这个在后台自定义表单可以看到模板名称。
2、在模板中加入验证码代码。
<input name="validate" type="text" id="vdcode" style="text-transform:uppercase;" size="8"/> <img id="vdimgck" align="absmiddle" onClick="this.src=this.src+'?'" style="cursor: pointer;" alt="看不清?点击更换" src="../include/vdimgck.php"/> <a href=”javascript:vide(-1);” onClick=”changeAuthCode();”>看不清? </a>
3、在模板页添加JS代码。 //此段代码是控制步骤2中最后一行代码,其实步骤2中已经加入了点击图片即可切换验证码的功能,可以省略步骤2中的最后一行代码,那么此步骤3.可以省略。
<script type="text/javascript" language="javascript"> 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; } //vdimgck.php文件是织梦自带的,直接引用即可 return false; }</script>
4、打开网站根目录/plus/diy.php文件, 添加验证代码到第61行左右位置,在服务器进行验证。
$validate = empty($validate) ? '' : strtolower(trim($validate)); $svali = strtolower(GetCkVdValue()); if(($validate=='' || $validate != $svali) && preg_match("/6/",$safe_gdopen)) {ResetVdValue(); ShowMsg('验证码不正确!',-1,0,1000); exit();}