验证码

1.生成验证码

生成验证码的函数:
  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代码

模板里使用:
  1. <!--输出一个验证码-->
  2. {:sp_verifycode_img('length=4&font_size=14&width=100&height=34&charset=2345678&use_noise=1&use_curve=0')}
  3. <!--输出结果-->
  4. <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="点击获取"/>
  5. <!--你可以在任何一个需要验证码的表单里生成一个验证码,同时为它增加一个name为vefify 的 input-->
  6. <input type="text" id="input_verify" name="verify" placeholder="验证码" class="form-control">
一个带验证码的表单
  1. <!--这是一个完整的ThinkCMF登录的表单-->
  2. <h2 class="text-center">用户登录</h2>
  3. <form class="form-horizontal js-ajax-forms" action="{:U('user/login/dologin')}" method="post">
  4. <div class="form-group">
  5. <input type="text" id="input_username" name="username" placeholder="手机号/邮箱/用户名" class="form-control">
  6. </div>
  7. <div class="form-group">
  8. <input type="password" id="input_password" name="password" placeholder="密码" class="form-control">
  9. </div>
  10. <div class="form-group">
  11. <div class="row">
  12. <div class="col-md-6">
  13. <input type="text" id="input_verify" name="verify" placeholder="验证码" class="form-control">
  14. </div>
  15. <div class="col-md-6">
  16. {:sp_verifycode_img('length=4&font_size=14&width=100&height=34&charset=2345678&use_noise=1&use_curve=0')}
  17. </div>
  18. </div>
  19. </div>
  20. <div class="form-group">
  21. <input type="hidden" name="redirect" value="{:I('get.redirect','')}">
  22. <button class="btn btn-primary btn-block js-ajax-submit" type="submit" style="margin-left: 0px">确定</button>
  23. </div>
  24. <div class="form-group" style="text-align: center;">
  25. <ul class="list-inline">
  26. <li><a href="{:leuu('user/register/index')}">现在注册</a></li>
  27. <li><a href="{:U('user/login/forgot_password')}">忘记密码</a></li>
  28. </ul>
  29. </div>
  30. </form>

2.验证码验证

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

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

在控制器里使用
  1. <?php
  2. namespace User\Controller;
  3. use Common\Controller\HomebaseController;
  4. class LoginController extends HomebaseController
  5. {
  6. // 前台用户登录
  7. public function index()
  8. {
  9. //省略...
  10. }
  11. // 登录验证提交
  12. public function dologin()
  13. {
  14. //如果表单里验证码input的name是verify,可以省略参数
  15. //如果不是可以单独获取验证码传入参数验证
  16. if (! sp_check_verify_code()) {
  17. $this->error("验证码错误!");
  18. }
  19. //省略...
  20. }
  21. }