PHPCMS v9表单向导中怎么加入验证码
在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行,有一句: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,这样便可以实现前端调用验证码后台进行验证了。
其实“在前端模板对应位置调用form类的checkcode方法生成验证码在后台对应控制器进行验证”的思路适用于phpcms的所有功能模块不只是表单向导模块。
Dcr163的博客
http://dcr163.cn/381.html(转载时请注明本文出处及文章链接)