dedecms自定义表单加入验证码的方法
中国网络营销推广专家
dedecms网站给自定义表单加dede模板自带验证码的方法。
有时候,我们因为需要给dede网站的自定义表单添加验证码,防止恶意填写表单提交。
我们可以用以下的方法来实现:
首先,我们要找到 /plus/diy.php 这个文件,在头部引入文件
require_once(DEDEINC.'/membermodel.cls.php');
找到以下代码:
03 |
$dede_fields = empty($dede_fields) ? '' : trim($dede_fields); |
04 |
$dede_fieldshash = empty($dede_fieldshash) ? '' : trim($dede_fieldshash); |
05 |
if(!empty($dede_fields)) |
07 |
if($dede_fieldshash != md5($dede_fields.$cfg_cookie_encode)) |
09 |
showMsg('数据校验不对,程序返回', '-1'); |
|
修改为:
03 |
$svali = GetCkVdValue(); |
04 |
if(preg_match("/1/",$safe_gdopen)){ |
05 |
if(strtolower($vdcode)!=$svali || $svali=='') |
08 |
ShowMsg('验证码错误!', '-1'); |
12 |
$dede_fields = empty($dede_fields) ? '' : trim($dede_fields); |
13 |
$dede_fieldshash = empty($dede_fieldshash) ? '' : trim($dede_fieldshash); |
14 |
if(!empty($dede_fields)) |
16 |
if($dede_fieldshash != md5($dede_fields.$cfg_cookie_encode)) |
18 |
showMsg('数据校验不对,程序返回', '-1'); |
|
第二步:在使用验证码的自定义表单静态页面中插入代码块
1 |
<input type="text" class="intxt w200" style="width: 50px; text-transform: uppercase;" id="vdcode" name="vdcode" class="code"/> |
2 |
<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代码块
01 |
<script type="text/javascript"> |
03 |
function changeAuthCode() { |
04 |
var num = new Date().getTime(); |
05 |
var rand = Math.round(Math.random() * 10000); |
07 |
$('#ver_code').css('visibility','visible'); |
08 |
if ($("#vdimgck")[0]) { |
09 |
$("#vdimgck")[0].src = "../include/vdimgck.php?tag=" + num; |