dedecms自定義表單加驗證碼

NO IMAGE

一,在後臺左側點選核心-》自定義表單-》增加新的自定義表單,按照提示填寫資訊,儲存出來再點選編輯進去新增欄位

二,自定義表單的呼叫,網上有呼叫方法,可是測試沒成功,我就用自己的方法吧,點選表單的預覽-》釋出資訊,會看到表單的模板,然後滑鼠右鍵檢視原始碼,找到表單的程式碼,把關鍵的程式碼複製出來,就可以變成前端想要的表單了。

三,一般表單都需要驗證欄位和防止惡意提交

1)驗證欄位:

找到專案根目錄下的plus/diy.php,在59行有個if(!empty($dede_fields))這個判斷裡面就可以新增我們驗證欄位的程式碼了,示例:

/*驗證表單欄位*/

                 if ($nickname == ”) {  //暱稱不能為空

                    ShowMsg(‘暱稱不能為空’,’-1′,0,1000);  

               exit;               

                 } elseif (!preg_match(“/^1[34578]\d{9}$/”, $clientele_tell) ){

                    ShowMsg(‘請輸入正確的手機號’,’-1′,0,1000);  

               exit;

                 } elseif (!is_numeric($clientele_qq) ) {

                    ShowMsg(‘請輸入正確的QQ’,’-1′,0,1000);  

               exit;

                 } elseif ( empty($message) ) {

                    ShowMsg(‘留言不能為空’,’-1′,0,1000);  

               exit;

                 }

2)驗證碼:

在前端驗證碼的地方新增程式碼:

 

<inputname=”validate” type=”text” id=”vdcode”style=”text-transform:uppercase;width:100px” size=”8″/>

<imgid=”vdimgck” align=”absmiddle”onClick=”this.src=this.src ‘?'” style=”cursor: pointer;”alt=”看不清?點選更換”src=”../include/vdimgck.php”/>

再找到專案根目錄下的plus/diy.php,在59行有個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;

                 }

發現一個問題,在dedecms中自定義表單中欄位英文名和系統中新新增的變數的英文名如果是一樣的話,就會影響到表單中欄位的提交,提交的表單中該欄位的值是系統中新新增變數的值。