当前位置: 首页 > 文档资料 > ThinkCMF 中文文档 >

验证码

优质
小牛编辑
126浏览
2023-12-01

1.生成验证码

生成验证码的函数:
sp_verifycode_img($imgparam,$imgattrs);
参数:

$imgparam:控制验证码的样式,(默认值length=4&font_size=20&width=238&height=50&use_curve=1&use_noise=1)

$imgattrs:生成的验证码img标签的原生属性,除src,onclick之外都可以设置,(默认值:style="cursor: pointer;" title="点击获取")

返回:

包括验证码的html代码

模板里使用:
<!--输出一个验证码-->
{:sp_verifycode_img('length=4&font_size=14&width=100&height=34&charset=2345678&use_noise=1&use_curve=0')}
<!--输出结果-->
<img class="verify_img" src="/index.php?g=api&m=checkcode&a=index&length=4&font_size=14&width=100&height=34&charset=2345678&use_noise=1&use_curve=0" onclick="this.src='/index.php?g=api&m=checkcode&a=index&length=4&font_size=14&width=100&height=34&charset=2345678&use_noise=1&use_curve=0&time='+Math.random();" style="cursor: pointer;" title="点击获取"/>

<!--你可以在任何一个需要验证码的表单里生成一个验证码,同时为它增加一个name为vefify 的 input-->
<input type="text" id="input_verify" name="verify"  placeholder="验证码" class="form-control">
一个带验证码的表单
<!--这是一个完整的ThinkCMF登录的表单-->
<h2 class="text-center">用户登录</h2>
<form class="form-horizontal js-ajax-forms" action="{:U('user/login/dologin')}" method="post">
    <div class="form-group">
        <input type="text" id="input_username" name="username" placeholder="手机号/邮箱/用户名" class="form-control">
    </div>

    <div class="form-group">
        <input type="password" id="input_password" name="password" placeholder="密码" class="form-control">
    </div>

    <div class="form-group">
        <div class="row">
            <div class="col-md-6">
                <input type="text" id="input_verify" name="verify"  placeholder="验证码" class="form-control">
            </div>
            <div class="col-md-6">
                {:sp_verifycode_img('length=4&font_size=14&width=100&height=34&charset=2345678&use_noise=1&use_curve=0')}
            </div>
        </div>

    </div>

    <div class="form-group">
        <input type="hidden" name="redirect" value="{:I('get.redirect','')}">
        <button class="btn btn-primary btn-block js-ajax-submit" type="submit" style="margin-left: 0px">确定</button>
    </div>

    <div class="form-group" style="text-align: center;">
        <ul class="list-inline">
            <li><a href="{:leuu('user/register/index')}">现在注册</a></li>
            <li><a href="{:U('user/login/forgot_password')}">忘记密码</a></li>
        </ul>
    </div>
</form>

2.验证码验证

验证验证码的函数:
sp_check_verify_code($verifycode='')
参数

$verifycode:要验证的验证码,默认空

在控制器里使用
<?php
namespace User\Controller;

use Common\Controller\HomebaseController;

class LoginController extends HomebaseController
{

    // 前台用户登录
    public function index()
    {
        //省略...
    }

    // 登录验证提交
    public function dologin()
    {
        //如果表单里验证码input的name是verify,可以省略参数
        //如果不是可以单独获取验证码传入参数验证
        if (! sp_check_verify_code()) {

            $this->error("验证码错误!");
        }

        //省略...
    }
}