在根目录vendor\topthink下检查是否有think-captcha包,
路径地址vendor\topthink\think-captcha\src下。
如果没有的话去下载think-captcha扩展包
我下载的是完整版的所以有think-captcha包.
验证码配置
在application/config.php文件中确保以下两项配置为true.
[php]
// 是否自动开启 SESSION
‘auto_start’ => true,
// 是否开启路由
‘url_route_on’ => true,
[/php]
然后在这应用配置文件中添加验证码的配置参数:
[php]
//验证码显示
‘captcha’ => [
// 验证码字符集合
‘codeSet’ => ‘2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY’,
// 验证码字体大小(px)
‘fontSize’ => 24,
// 背景颜色
‘bg’ => [255, 255, 255],
// 是否画混淆曲线
‘useCurve’ => false,
// 验证码图片高度
‘imageH’ => 50,
// 验证码图片宽度
‘imageW’ => 180,
// 验证码位数
‘length’ => 4,
// 验证成功后是否重置
‘reset’ => true
],
[/php]
验证码显示
[php]<div>{:captcha_img()}</div>[/php]
或者
[php]<div><img src="{:captcha_src()}" alt="captche" onclick="this.src='{:captcha_src()}?x=’+Math.random();" /></div>[/php]
控制器验证
[php]
$this->validate($data,[
‘captcha|验证码’=>’require|captcha’
]);
[/php]
或者手动验证
[php]
if(!captcha_check($captcha)){
//验证失败
};
[/php]
注意:
当我开启url_route_on为true是报错
[php]
// 是否开启路由
‘url_route_on’ => true,
[/php]
报错代码为:
RouteNotFoundException in App.php line 545
路由异常问题
原来我是开启了强制模式
[php]
‘url_route_on’ => true,
‘url_route_must’ => true,
[/php]
把url_route_must改成false,开启混合模式就行了。
[php]
‘url_route_on’ => true,
‘url_route_must’=> false,
[/php]
如果想使用强制模式必须严格给每一个访问地址定义路由规则(包括首页),否则将抛出异常。
想要更多了解可以去官网查看帮助文档。
发表评论