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>

大功告成,欢迎各位提供建议

  

  

猜你喜欢

转载自www.cnblogs.com/dadiaomengmei/p/11655827.html