phpcms v9表單向導中怎么加入驗證碼
問題描述:
如題今天在百度知道中發(fā)現一網友提的問題,感覺挺好代表性的所以在知道回答完后將答案同步到這里共各位網友參考。
解決方法:
在phpcms表單向導模塊中創(chuàng)建字段時沒有驗證碼類型去選擇,所以也就無法直接使用來加入驗證碼了。
對模板程序稍微進行擴展開發(fā)即可實現。具體流程如下:
一、找到表單向導生成模板(一般默認為phpcms/templates/default/formguide/show_js.html),在大約25行form表單中插入調用驗證碼的代碼,如下:
{php pc_base::load_sys_class('form', '', 0); }
{form::checkcode('code_img', '4', '14', 100, 30)}
二、然后找到表單提交地址對應的方法(phpcms/modules/formguide/index.php里的show()方法),在其中加入驗證驗證碼是否正確的程序即可。代碼示例如下:
找到大約第51行,有一句:
if (isset($_POST['dosubmit'])) { //如果提交表單
一定要在此句之后的if判斷大括號中寫:
//啟動session
$session_storage = 'session_'.pc_base::load_config('system','session_storage');
pc_base::load_sys_class($session_storage);
//驗證碼
if (($_SESSION['code'] != strtolower($_POST['code'])) || empty($_SESSION['code'])) {
showmessage("驗證碼錯誤");
} else {
$_SESSION['code'] = '';
}
OK,如此便可以實現前端調用驗證碼后臺進行驗證了。
PS: 其實“在前端模板對應位置調用form類的checkcode方法生成驗證碼在后臺對應控制器進行驗證”的思路適用于phpcms的所有功能模塊不只是表單向導模塊。
12