PHpcms v9默认会在会员注册登陆、后台管理登陆页面带有验证码,但是很多时候,我们希望验证码出现在表单提交、留言本里边,那么Phpcms v9的验证码怎么做到自由调用呢?在这里与大家分享一个旧的话题:Phpcms V9表单向导增加验证码方法,希望对有这方面需求的朋友能有个参考思路。
一、首先了解下Phpcms v9验证码的源头:
Phpcms v9验证码源自api/checkcode.php,看这个文件的具体代码,可以看出,验证码可以自定义验证码图片的宽度(width)、高度(height)、文字长度(code_len)、文字字号大小(font_size)、文字颜色(font_color)、背景色(background)这些属性,可谓考虑的比较全面了,至于具体的字体、干扰纹理多少,都可以通过修改程序文件做到修改。
二、Phpcms V9表单向导增加验证码方法
2.1、修改表单向导模块的文件:phpcmsmodulesformguideindex.php下第4行插入以下代码:
$session_storage = 'session_'.pc_base::load_config('system','session_storage'); pc_base::load_sys_class($session_storage);
如下:
在大约55行$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 V9表单向导模块里边做好调用验证码的准备了。
2.2、前端模板调用:在留言表单的模板文件插入验证码。
修改表单js调用模版phpcmstemplatesdefaultformguideshow_js.html文件:
在表单循环{/loop}结束(大约23行)前加入代码:
<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>