POST TIME:2017-11-13 00:55
使用織夢Dedecms自定義表單的時候,即使你做了字段的驗證,也很有可能被人刷很多垃圾的內容,更加安全的一個方法是為自定義表單添加上驗證碼功能。今天我就來為大家分享一下怎樣給自定義表單添加驗證碼!
首先登錄網(wǎng)站后臺,找到你自定義表單的管理(修改)頁面,你會看到表單發(fā)布時調用的模板,如下圖:
這個模板位于 /templets/plus/
目錄下,我們打開相應的模板,在
<?php echo $postform; ?>
之后,</table>
之前加入如下代碼:
<tr> <td align="right" valign="top">驗證碼:</td> <td><input id="vdcode" type="text" name="validate" style="text-transform:uppercase;"/><img id="vdimgck" align="absmiddle" onClick="this.src=this.src+'?'" style="cursor: pointer;" alt="看不清?點擊更換" src="../include/vdimgck.php"/> </td> </tr>
保存。
然后刷新一下表單提交頁面看看,是不是已經(jīng)出現(xiàn)了驗證碼?
下面我們要做的就是對驗證碼進行驗證。打開 /puls/diy.php
頁面,在elseif($do == 2){
里添加如下代碼(一定要位于這個大括號里的最前面):
elseif($do == 2) { $validate = empty($validate) ? '' : strtolower(trim($validate)); $svali = strtolower(GetCkVdValue()); $backurl = 'diy.php?action=post&diyid=1'; //這里換成你表單的地址 if($validate=='' || $validate != $svali){ ResetVdValue(); ShowMsg('驗證碼不正確!',$backurl,0,1000); exit; }
保存即可。再次刷新一下表單,提交測試下~~
提示:1. 把代碼加到 diy.php 中,你所有的自定義表單模板都需要加上驗證碼,沒加的會提示“驗證碼不正確”;當然,你也可以根據(jù) $diyid 來設置是否進行驗證碼校驗。2. 第二段代碼中的 $backurl 可以直接寫成 -1,這時候必須把ResetVdValue(); 去掉,否則會一直提示“驗證碼不正確”,因為 $backurl 寫成 -1 時,表單返回上一個頁面,驗證碼圖片并沒有刷新,而ResetVdValue(); 又會把已保存的驗證碼值清空,導致校驗失敗。