CaptchaController.php
2.7 KB
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
// +----------------------------------------------------------------------
// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013-2018 http://www.thinkcmf.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +---------------------------------------------------------------------
// | Author: Dean <zxxjjforever@163.com>
// +----------------------------------------------------------------------
namespace cmf\controller;
use think\captcha\Captcha;
use think\Request;
class CaptchaController
{
/**
* captcha/new?height=50&width=200&font_size=25&length=4&bg=243,251,254&id=1
* @param Request $request
* @return \think\Response
*/
public function index(Request $request)
{
$config = [
// 验证码字体大小(px)
'fontSize' => 25,
// 验证码字体大小(px)
'useCurve' => true,
// 是否画混淆曲线
'useNoise' => true,
// 验证码图片高度
'imageH' => 0,
// 验证码图片宽度
'imageW' => 0,
// 验证码位数
'length' => 4,
// 背景颜色
'bg' => [243, 251, 254],
];
$fontSize = $request->param('font_size', 25, 'intval');
if ($fontSize > 8) {
$config['fontSize'] = $fontSize;
}
$imageH = $request->param('height', '');
if ($imageH != '') {
$config['imageH'] = intval($imageH);
}
$imageW = $request->param('width', '');
if ($imageW != '') {
$config['imageW'] = intval($imageW);
}
$length = $request->param('length', 4, 'intval');
if ($length > 2) {
$config['length'] = $length;
}
$bg = $request->param('bg', '');
if (!empty($bg)) {
$bg = explode(',', $bg);
array_walk($bg, 'intval');
if (count($bg) > 2 && $bg[0] < 256 && $bg[1] < 256 && $bg[2] < 256) {
$config['bg'] = $bg;
}
}
$id = $request->param('id', 0, 'intval');
if ($id > 5 || empty($id)) {
$id = '';
}
$defaultCaptchaConfig = config('captcha');
if ($defaultCaptchaConfig && is_array($defaultCaptchaConfig)) {
$config = array_merge($defaultCaptchaConfig, $config);
}
ob_clean();//解决验证码不显示问题
$captcha = new Captcha($config);
ob_clean();// 清除输出缓存
return $captcha->entry($id);
}
}