laravel 5.2 使用 captcha 实现 验证码
案例:
一 . 首先在laravel的项目下找到composer.json 文件 ,在composer.json中的require数组中加上
"gregwar/captcha": "1.*", 使用composer update 命令更新一下 这样一来的话,就算是安装上这个库或者是中间件了。之后就可以放肆的写你的代码了
二. 定义路由:
Route::get('/admin/code','Admin\LoginController@code');
定义好路由后在控制器加入一下代码:
<?php use Gregwar\Captcha\CaptchaBuilder; public function code(Request $request) { //生成验证码图片的Builder对象,配置相应属性 $builder = new CaptchaBuilder; //可以设置图片宽高及字体 $builder->build(120, 40); //存储验证码 Session::set('admin_yzm', $builder->getPhrase()); //生成图片 header("Cache-Control: no-cache, must-revalidate"); header('Content-Type: image/jpeg'); $builder->output(); }
三 . blade 模板的调用
<form method="post" class="layui-form" action="{{url('/login_do')}}"> <input name="username" placeholder="用户名" type="text" lay-verify="required" class="layui-input" > <hr class="hr15"> <input name="password" lay-verify="required" placeholder="密码" type="password" class="layui-input"> <hr class="hr15"> <input type="text" class="" placeholder="验证码" id="yzm" name="yzm" style="width: 50%;height: 40px;padding: 6px 12px;font-size: 14px;border: 1px solid #cccccc;border-radius: 4px;"> {{csrf_field()}} <a onclick="re_captcha()" ><img src="{{url('/admin/code?tmp=1')}}" alt="验证码" title="刷新图片" width="120" height="40" id="c2c98f0de5a04167a9e427d883690ff6" border="0"></a> <input value="登录" lay-submit style="width:100%;" type="submit"> <hr class="hr20" > </form> JS代码: <script> function re_captcha() { $url = "{{ URL('/admin/code')}}"; $url = $url + "?tmp=" + Math.random(); document.getElementById('c2c98f0de5a04167a9e427d883690ff6').src=$url; } </script>
大功告成,欢迎各位提供建议