- PS:Windows中使用该扩展包还需要安装 GD2 扩展(在php.ini中取消extension=php_gd2.dll前面的注释)
- PS:Windows中使用该扩展包还需要安装 php_fileinfo扩展(在php.ini中取消extension=php_fileinfo.dll前面的注释)
在cmd命令行切换到当前的项目根目录,执行
composer require mews/captcha 这里需要等待一会,因为是国外镜像
a,在 providers 数组内追加如下内容
'providers' => [
Mews\Captcha\CaptchaServiceProvider::class,
]
b,在 aliases 数组内追加如下内容
'aliases' => [
// ...
'Captcha' => Mews\Captcha\Facades\Captcha::class,
]
确保执行命令的时候在项目的根目录里面。
小编这里分享两个命令,执行任意一个即可。
命令1:php artisan vendor:publish --provider="Mews\Captcha\CaptchaServiceProvider"
命令2:php artisan vendor:publish 执行此命令的时候会弹出让选择安装的功能。不建议使用,因为有时候会报错。
可以看到这些配置选项都非常通俗易懂,你可以在此修改对应选项自定义验证码的长度、背景颜色、文字颜色等属性,在此不做过多叙述。
每一个数组都对应的是一个二维码。下面将会说到怎么使用。
至此,此扩展包就安装完成了。
['2', '3', '4', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'm', 'n', 'p', 'q', 'r', 't', 'u', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'M', 'N', 'P', 'Q', 'R', 'T', 'U', 'X', 'Y', 'Z'],
'default' => [
'length' => 9,
'width' => 120,
'height' => 36,
'quality' => 90,
'math' => false,
],
'math' => [
'length' => 9,
'width' => 120,
'height' => 36,
'quality' => 90,
'math' => true,
],
'flat' => [
'length' => 6,
'width' => 160,
'height' => 46,
'quality' => 90,
'lines' => 6,
'bgImage' => false,
'bgColor' => '#ecf2f4',
'fontColors' => ['#2c3e50', '#c0392b', '#16a085', '#c0392b', '#8e44ad', '#303f9f', '#f57c00', '#795548'],
'contrast' => -5,
],
'mini' => [
'length' => 3,
'width' => 60,
'height' => 32,
],
'inverse' => [
'length' => 5,
'width' => 120,
'height' => 36,
'quality' => 90,
'sensitive' => true,
'angle' => 12,
'sharpen' => 10,
'blur' => 2,
'invert' => true,
'contrast' => -5,
]
];
captcha_img();//使用默认的验证码配置生成验证码并返回img格式
captcha_img('flat');//使用指定的验证码配置生成验证码并返回img格式
ajax提交方式:
表单提交方式:
返回验证码的 url 地址
captcha_src();//使用默认的验证码配置生成验证码并返回url格式
captcha_src('flat');//使用指定的验证码配置生成验证码并返回url格式
a,使用验证码规则验证
public function check(Request $request)
{
$data = $request->all();
$rules = [
'captcha' => 'required|captcha',//required表示必填 captcha表示进行验证码验证
];
// 自定义消息
$messages = [
'captcha.required' => '请输入验证码',
'captcha.captcha' => '请输入正确验证码',
];
//对验证码字段进行验证
$validator = \Validator::make($data, $rules, $messages);
if($validator->passes()){
//验证通过
}else{
//验证失败
//$validator->errors() 获取错误信息
//返回上个页面并将错误信息返回到页面上
return back()->withErrors($validator);
}
}
b,直接使用拓展包的captcha_check函数验证
public function check(Request $request)
{
$data = $request->all();
//对验证码进行验证,验证通过返回true,失败返回false
$capt = captcha_check($data['captcha']);
if($capt){
//验证成功
}else{
//验证失败
}
}