Laravel验证码工具gregwar captcha

2017-04-08 17:54:53   Laravel

  Laravel验证码   gregwar captcha  

  1. Ps:gregwar/captchaComposer下载排行中长居第一名榜位。好用的工具大家都推荐,这个验证码工具作者本人也在很多项目中运用到了。给大家推荐的同时分享点经验。

一、安装方法

1.在项目根目录下执行:

  1. composer require gregwar/captcha

2.在composer.json中添加:

  1. "require": {
  2. ...
  3. ...
  4. "gregwar/captcha": "1.*"
  5. },

然后执行 composer update

这样安装就算完成了。

二、使用方法

1.命名空间引入

  1. use Gregwar\Captcha\CaptchaBuilder; use Gregwar\Captcha\PhraseBuilder;

下面给大家一个完整的例子

路由定义(注意:该路由放在中间件外)

  1. Route::get('/code/captcha/{tmp}', 'Admin\LoginController@captcha');

// 验证码生成
public function captcha($tmp)
{

  1. $phrase = new PhraseBuilder;
  2. // 设置验证码位数
  3. $code = $phrase->build(6);
  4. // 生成验证码图片的Builder对象,配置相应属性
  5. $builder = new CaptchaBuilder($code, $phrase);
  6. // 设置背景颜色
  7. $builder->setBackgroundColor(220, 210, 230);
  8. $builder->setMaxAngle(25);
  9. $builder->setMaxBehindLines(0);
  10. $builder->setMaxFrontLines(0);
  11. // 可以设置图片宽高及字体
  12. $builder->build($width = 100, $height = 40, $font = null);
  13. // 获取验证码的内容
  14. $phrase = $builder->getPhrase();
  15. // 把内容存入session
  16. \Session::flash('code', $phrase);
  17. // 生成图片
  18. header("Cache-Control: no-cache, must-revalidate");
  19. header("Content-Type:image/jpeg");
  20. $builder->output();
  21. }

模版案例

  1. <input name="captcha" type="text" placeholder="验证码">
  2. <a onclick="javascript:re_captcha();">
  3. <img src="{{ URL('/code/captcha/1') }}" id="127ddf0de5a04167a9e427d883690ff6">
  4. </a>

Js点击换验证码

  1. <script type="text/javascript">
  2. function re_captcha() {
  3. $url = "{{ URL('/code/captcha') }}";
  4. $url = $url + "/" + Math.random();
  5. document.getElementById('127ddf0de5a04167a9e427d883690ff6').src = $url;
  6. }
  7. </script>

如何验证(由于是案例 我只做最基础的验证)

  1. public function store(Request $request)
  2. {
  3. //
  4. $data = \Input::all();
  5. //验证码验证
  6. if ($data['captcha'] != \Session::get('code')) {
  7. return back()
  8. ->withErrors('验证码错误!');
  9. }

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

感谢你的支持,我会继续努力!
扫码打赏,建议金额1-10元