tp5的验证码

发布于 2019-04-15  290 次阅读


tp5的验证码

[TOC]


安装captcha:


1
composer require topthink/think-captcha=1.*

验证码配置


1
2
3
4
5
6
7
8
$config =    [
    // 验证码字体大小
    'fontSize'    =>    30,    
    // 验证码位数
    'length'      =>    4,  
    // 关闭验证码杂点
    'useNoise'    =>    false,
]

图像的显示

模板文件:

```php+HTML
<div class="validate">{:captcha_img()}</div>

<pre><code class=""><br />> 视图能加载类库的方法,也可以加载application里面的common.php的全局方法
>
> 调用方法:
>
> ```php
> {:方法名()}
> ```

captcha_img()这个方法在:

"\vendor\topthink\think-captcha\src\helper.php"


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<br />使用js添加事件,使得点击一次刷新一次

```javascript
$(&#039;.validate img&#039;).click(function () {
    $(this).attr(&#039;src&#039;,&#039;./captcha.html?r=&#039;+Math.random()*5000);
})
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;数据的验证&lt;/h2&gt;

表单:

```php+HTML
<form action="{:url('check')}" method="post" role="form">
    <input type="text" class="form-control" name="code" id="" placeholder="Input...">
    <button type="submit" class="btn btn-primary">Submit</button>
    <div class="validate">{:captcha_img()}</div>
</form>

<pre><code class=""><br /><br /><br />跳转的check方法:

```php
public function check($code=''){
    $captcha = new \think\captcha\Captcha();//实例化
    if($captcha-&gt;check($code)){
        return $this-&gt;success();
    }else{
        return $this-&gt;error();
    }
}

实际上每次刷新验证码都会*输出验证码并把验证码的值保存到session中,验证码保存到session的格式为: array('verify_code' => '验证码值', 'verify_time' => '验证码创建时间') 验证时从session获取值再拿来比较

助手函数:

https://www.kancloud.cn/manual/thinkphp5/154295


先这样,以后再改吧