1. 程式人生 > >織夢dedecms給自定義表單加驗證碼的開發方法

織夢dedecms給自定義表單加驗證碼的開發方法

前言

我們在開發織夢模板時,有時會用自定義表單來收集一些留言內容。但是加了自定義表單又有被機器人注入大量垃圾資訊的風險。為了避免這個風險,我們可以給表單加一個驗證碼。可以有效攔截垃圾資訊的注入。

開發方法

1、開啟 /plus/diy.php 檔案。找到:

$fieldarr = explode(';', $dede_fields);

在其 下面 增加如下程式碼:

if(!empty($dede_fields))  
 {  
  $validate =empty($validate) ? '' : strtolower(trim($validate));
  $svali = strtolower(GetCkVdValue());              
  if(($validate=='' || $validate != $svali) && preg_match("/6/",$safe_gdopen))
  {
  ResetVdValue();  
  ShowMsg('驗證碼不正確!',-1,0,1000);  
  exit;  
  }  
}  

2、在模板上找到您的自定義表單,在對應的位置插入以下程式碼,一般是放在留言表單最後 submit之前:

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

<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;  
   } 
return false;      
}  
</script>

完成。