织梦dedecms网站给自定义表单加dede模板自带验证码的方法。
有时候,我们因为需要给dede网站的自定义表单添加验证码,防止恶意填写表单提交。
我们可以用以下的方法来实现:
首先,我们要找到 /plus/diy.php 这个文件
在头部引入文件:
require_once(DEDEINC.'/membermodel.cls.php');
然后找到
elseif($do == 2)
{ 在这个地方加入代码块
//验证码验证
$svali = GetCkVdValue();
if(preg_match("/1/",$safe_gdopen)){
if(strtolower($vdcode)!=$svali || $svali=='')
{
ResetVdValue();
ShowMsg('验证码错误!', '-1');
exit();
}
}
修改好后保存一下文件。
第二步:在使用验证码的自定义表单静态页面中插入代码块
<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=this.src+'?'" style="cursor: pointer;" alt="看不清?点击更换" src="/include/vdimgck.php"/> 看不清? <a href="javascript:void(0)" onclick="changeAuthCode();">点击更换</a>
在这个静态页面里还得引用JQuery
再加入 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 = "../include/vdimgck.php?tag=" + num;
}
return false;
}
</script>
好了,现在试一试,是不是可以实现验证码的提交了?一个简单的dedecms自定义表单dede模板自带验证码的功能就实现了。
织梦自定义表单的应用非常方便,不管用在什么地方,收集信息特别方便制作和管理。
有如下几个建议,把下拉框和单选按扭在后台做成单行文本,这样的话不管你提交的是下拉框或是单选,都可以有效的接收它的值。如果后台就做成单选或下拉,如果改了默认值,提交的表单值跟后台默认值对不上的话就会出现提交不成功的情况,就是前台提交的时候选择了,但后台看不到数据。若是做成单行文本,提交的值就会以文本的形式写入到后台,表单修改值也更加显得方便了。
提交之后会显示织梦的默认提示信息“友情提示”几秒过后就自动转到首页。如何才能让提交的信息停留,并让用户确认所提交的信息。
我想了如下方式。给diy.php里提交成功后输入固定值而不是自带的跳转方法。如下: