織夢dedecms給自定義表單加驗證碼的開發方法
阿新 • • 發佈:2019-01-29
前言
我們在開發織夢模板時,有時會用自定義表單來收集一些留言內容。但是加了自定義表單又有被機器人注入大量垃圾資訊的風險。為了避免這個風險,我們可以給表單加一個驗證碼。可以有效攔截垃圾資訊的注入。
開發方法
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>
完成。