织梦DedeCMS是很强大的内容管理系统,可以搭建基本上所有种类的网站。有时在建站需求中,需要一些额外的表单供前台用户提交,以便于收集、统计、分析及处理更多的数据。比如:在线订单、在线报名等一些常见的互动应用。织梦DedeCMS提供的自定义表单功能即可满足大多数的此类需求。
不过默认的自定义表单功能有一点点不足,就是没有验证码,这样会造成有人恶意提交或者使用软件提交,给网站造成影响。通过给自定义表单加入验证码的功能,可以防止一些用户恶意提交。
那怎么给织梦DedeCMS的自定义表单加入验证码功能呢?首先需要在DedeCMS后台生成自定义表单。然后在自定义表单模板中添加如下验证码代码:
<input type="text" class="intxt w200" style="width: 50px; text-transform: uppercase;" id="vdcode" name="vdcode" class="code"/><img id="vdimgck" align="absmiddle" onclick="this.src=https://www.noniu.com/jiaocheng/this.src+'?'" style="cursor: pointer;" alt="看不清?点击更换" src="https://www.noniu.com/include/vdimgck.php"/>看不清?<a href="https://www.noniu.com/jiaocheng/javascript:void(0)" onclick="changeAuthCode();">点击更换</a>
并且在当前页添加JS代码,如下:
<script type="text/javascript"> $ = 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 = "https://www.noniu.com/include/vdimgck.php?tag=" + num; } return false; } </script>
最后修改订单处理或者在线报名页面,打开网站根目录/plus/diy.php文件,在头部引入文件:
require_once(DEDEINC.'/membermodel.cls.php');
添加验证代码到第61行左右位置。如下:
if(!empty($dede_fields)){$validate = empty($validate) ? '' : strtolower(trim($validate)); $svali = strtolower(GetCkVdValue());if(($validate=='' || $validate != $svali) && preg_match("/6/",$safe_gdopen)){ ResetVdValue();ShowMsg('验证码不正确!',$dede_add,0,1000);exit;}}
好了,在织梦自定义表单中加入验证码的工作就完成了。验证码虽然给用户带来了不便,不过也是为了网站安全、稳定的一道必不可少的防线呀。