在phpcms模板页面中如何调用验证码以及实现验证码验证?

问题描述:

不管是在phpcms的模板制作还是做某些功能模块的二次开发时,我们经常在一些表单中用到调用验证码,那么具体我们改如何调用呢?

解决方法:

在phpcms网站中使用验证码我们要考虑前端模板页面中如何调用验证码和后台程序中如何验证两个方面:
一、在模板中,调用验证码的代码如下:

<label for="code">验证码</label>
<input type="text" id="code" name="code" size="10">
{form::checkcode('code_img', '4', '14', 100, 30)}

注意,从标签中可知是使用了form类中的checkcode方法,那么就要确保此模板所在的控制器文件中已经调用了该类,调用方法如下:
pc_base::load_sys_class('form', '', 0);
此类文件位置/phpcms/libs/classes/form.class.php,你可以通过查看此文件中的checkcode方法参数注释来了解各参数所代表的意义。
二、在后端控制器文件php程序中,演示代码如下:

defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_sys_class('form','', 0);

class index {
    public function init(){
    if(isset($_POST['dosubmit'])){ //提交数据
        //启动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'] = '';
        }   

这里我们注意三点:
第二行,不要忘记引入form类;
第7、8、9行,在读取session数据前先引入session存储配置与启动对应类(一般是mysql);
判断session的if条件即将表单填入的code值与session中的code值进行对比;

PS:大家还可以参考phpcms系统中原有的调用表单的地方进行研究学习或参照,
例如会员注册模板页(/phpcms/templates/default/member/register.html)
以及对应的后台php文件(phpcms/modules/member/index.php中的register方法).
原帖地址

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值