phpcmsv9自定義表單如何添加驗證碼功能

發布時間:2020-04-12 10:02:40 來源:青鋒建站 作者:青鋒建站
  默認的PHPCMS V9雖然提供了自定義表單的一些控制功能,例如限制提交時間,限制注冊后可以提供,當然也可以限制同一IP多交提交,但是沒有自動添加驗證碼,需要我們人工來添加。讓PHPCMS使用表單驗證碼可以防止機器發送大量的垃圾表單,以下是青鋒建站給大家分享的如何給PHPCMS表單向導(自定義表單)添加驗證碼功能。
  給PHPCMS自定義表單添加驗證碼的思路是前臺表單顯示驗證碼,后臺提交表單時進行驗證碼的校驗即可以。

前臺PHPCMS自定義表單顯示驗證碼

  這里我們添加一個驗證碼輸入框,一個圖片用來轉入驗證碼,再有就是提交按鈕,注意提交按鈕的name屬于必須是name="dosubmit",因為后端是根據這個來提取表單的,通過添加以下代碼就可以顯示驗證碼。
<input class="bg-transparent text-white border pl-2" type="text"  placeholder="Check code" name="checkcode"/>
<img id="vdimgck" align="absmiddle" onclick='this.src=this.src+"&"+Math.random()' style="cursor: pointer;" alt="Can't you see clearly? Click replace" src='{APP_PATH}api.php?op=checkcode&code_len=4&font_size=20&width=130&height=50&font_color=&background=' /><br>
<input type="submit" value="Submit" name="dosubmit" class="btn bg-main text-white p-1 my-3" />

后臺校驗驗證碼

  在PHPCMS后臺校驗驗證碼必須開啟session,然后將提交的驗證碼和session中的驗證碼進行比較即可。
在\phpcms\modules\formguide\index.php中index類上面添加兩行來加載session,
$session_storage = 'session_'.pc_base::load_config('system','session_storage');
pc_base::load_sys_class($session_storage);

在大約63行添加驗證碼的校驗,在if (isset($_POST['dosubmit'])) {后面添加以下代碼:
if ($_SESSION['code']!=strtolower(new_addslashes($_POST['checkcode']))) {
      showmessage(L('checkcode is wrong'), HTTP_REFERER);
}

表示驗證碼錯誤后跳轉到先前頁面。
  青鋒建站承接phpcms網站建設服務,包括phpcms二次開發,phpcms模板開發服務。青鋒建站,提供專業的高品質網站制作服務,包括網站建設,SEO,網絡營銷,PHP開發,網站建設知名品牌,全國接單,為企業構建強有力的營銷平臺。
分享到:

Copyright © 2016-2026 青鋒建站 版權所有

pc蛋蛋自动答题