最新消息:文章中包含代码时,请遵守代码高亮规范!

phpcms v9表单加入验证码【转载】

HTML+CSS Cindy 546浏览 0评论

在phpcms表单向导模块中创建字段时没有验证码类型去选择,所以也就无法直接使用来加入验证码了。
对模板程序稍微进行扩展开发即可实现。具体流程如下:

一、找到表单向导生成模板(一般默认为phpcms/templates/default/formguide/show_js.html),在大约25行form表单中插入调用验证码的代码,如下:
<tr>
<td><label for=”code”>验证码</label></td>
<td>
{php pc_base::load_sys_class(‘form’, ”, 0); }<!–引入form生成类,其实这里建议写在控制器里,写在这里是为了方便–>
<input type=”text” id=”code” name=”code” size=”10″>
{form::checkcode(‘code_img’, ‘4’, ’14’, 100, 30)}
</td>
</tr>
二、然后找到表单提交地址对应的方法(phpcms/modules/formguide/index.php里的show()方法),在其中加入验证验证码是否正确的程序即可。代码示例如下:
找到大约第51行,有一句:
1
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的所有功能模块不只是表单向导模块。

转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/22239.html


pay_weixin
pay_weixin
微信打赏
pay_weixin
支付宝打赏
感谢您对作者Cindy的打赏,我们会更加努力!    如果您想成为作者,请点我

您必须 登录 才能发表评论!