表單想到比較簡單,因此沒有加入驗證碼的功能。網上的相似教程又大多數不許確。因此親自測試了一下,發現下面的方法是可用的。但願對有需求的朋友們有所幫助。php
1首先是調用表單的頁面加入驗證碼。表單js調用模版默認的是\phpcms\templates\default\formguide\show_js.html.html
在該文件裏面找到這行代碼,大概在23行session
<tr> <th width="80">{if $info['star']} <font color="red">*</font>{/if} {$info['name']} </th> <td>{$info['form']} {$info['tips']}</td> </tr> {/loop}
在下面加入一行代碼。ide
<tr><td style="text-align:right;">驗證碼</td><td colspan="2"><span title="點擊更換驗證碼" style=" cursor:pointer;"><input type="text" id="code" name="code" size="8" class="input-text">{form::checkcode('code_img', '4', '14', 84, 24)}</span>請輸入圖片中的驗證碼</td></tr>
2找到這個文件\phpcms\modules\formguide\index.phpoop
這個須要修改兩處測試
1)在第三行找到這行代碼。ui
defined('IN_PHPCMS') or exit('No permission resources.'); define('CACHE_MODEL_PATH',PHPCMS_PATH.'caches'.DIRECTORY_SEPARATOR.'caches_model'.DIRECTORY_SEPARATOR.'caches_data'.DIRECTORY_SEPARATOR);
而後在後面加入下面兩行代碼this
$session_storage = 'session_'.pc_base::load_config('system','session_storage'); pc_base::load_sys_class($session_storage);
2)找到下面這行代碼spa
if (isset($_POST['dosubmit'])) { $tablename = 'form_'.$r['tablename']; $this->m_db->change_table($tablename);
而後在下面加入下面這段代碼code
if(!empty($_SESSION['code'])) { //判斷驗證碼 $code = isset($_POST['code']) && trim($_POST['code']) ? trim($_POST['code']) : showmessage(L('input_code'), HTTP_REFERER); if ($_SESSION['code'] != strtolower($code)) { showmessage(L('code_error'), HTTP_REFERER); } }