为phpCMS v9自定义表单添加验证码验证

在phpCMS v9中制作留言板,在线订单等自定义表单时,为了防止被恶意注入留言,我们需要添加验证码,具体操作方式如1、 在表单模板页面添加.验证码显示的HTML
找到\phpcms\templates\default\formguide\show.html 中添加验证码显示
<input id="code" type="text" name="code" size="8" />{form::checkcode('code_img', '4', '14', 84, 24)}
注意:如果是JS调用到其他页面,要在sshow_js.html添加。另外如果你更换了模板,记得将formguide复制到你的模板文件夹,并作如上修改。

2、 修改程序文件
找到\phpcms\modules\formguide\index.php 中修改
在类index中加入方法。

private function _session_start() {
$session_storage = 'session_'.pc_base::load_config('system','session_storage');
pc_base::load_sys_class($session_storage);
}

接下来,定义到
if (isset($_POST['dosubmit'])) {
$tablename = 'form_'.$r['tablename'];
$this->m_db->change_table($tablename);

在下方加入:
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);
}
}

升级phpCMS的时候,记得备份这个文件,如果被升级文件覆盖,请重新做如上修改,以免验证码失效。

Published by 小车

网站技术工人