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; |