首頁  >  文章  >  後端開發  >  Laravel的驗證碼庫

Laravel的驗證碼庫

韦小宝
韦小宝原創
2017-11-24 09:19:221443瀏覽

Laravel中有很多圖片驗證碼的函式庫可以使用,本篇介紹其Laravel之一:gregwar/captcha,這個函式庫比較簡單,在Laravel中比較常用。下面我們就來介紹下使用細節:

首先, composer.json中如下加入配置:

"require": {
        ...
        "gregwar/captcha": "1.*"
    },

然後,已成習慣的指令:

composer update

接下來就可以正常使用了,根據具體的開發需求,可以有很多種方式去使用。

可以將驗證碼圖片儲存檔案:

<?php$builder->save(&#39;out.jpg&#39;);

可以直接輸出圖片到網頁:

<?php
header(&#39;Content-type: image/jpeg&#39;);
$builder->output();

可以產生內嵌圖片:

<img src="<?php echo $builder->inline(); ?>" />

以下示範了其中一種使用方式,直接輸出圖片到網頁。

定義一個Controller:

<?php namespace App\Http\Controllers;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

//引用對應的命名空間

use Gregwar\Captcha\CaptchaBuilder;
use Session;

class KitController extends Controller {

   /**
    * Display a listing of the resource.
    *
    * @return Response
    */
   public function captcha($tmp)
   {
       //生成验证码图片的Builder对象,配置相应属性
       $builder = new CaptchaBuilder;
       //可以设置图片宽高及字体
       $builder->build($width = 100, $height = 40, $font = null);
       //获取验证码的内容
       $phrase = $builder->getPhrase();

       //把内容存入session
       Session::flash(&#39;milkcaptcha&#39;, $phrase);
       //生成图片
       header("Cache-Control: no-cache, must-revalidate");
       header(&#39;Content-Type: image/jpeg&#39;);
       $builder->output();
   }
}

下面我們可以設定對應的router存取這個驗證碼圖片, 修改router.php:

Route::get(&#39;kit/captcha/{tmp}&#39;, &#39;KitController@captcha&#39;);

現在可以透過特定的url,可以訪問看到這張圖片了。

驗證碼

表單內部寫的比較簡單,看看即可:

<input type="text" name="captcha" class="form-control" style="width: 300px;">
<a onclick="javascript:re_captcha();" >
  <img src="{{ URL(&#39;kit/captcha/1&#39;) }}"  alt="验证码" title="刷新图片" 
       width="100" height="40" id="c2c98f0de5a04167a9e427d883690ff6" border="0"/>
</a>
<script>  
  function re_captcha() {
    $url = "{{ URL(&#39;kit/captcha&#39;) }}";
        $url = $url + "/" + Math.random();
        document.getElementById(&#39;c2c98f0de5a04167a9e427d883690ff6&#39;).src=$url;
  }
</script>

最後就是在form提交頁面驗證對應驗證碼,庫中也為我們提供了對應方法:

$userInput = $request->get(&#39;captcha&#39;);
if($builder->testPhrase($userInput)) {
    //用户输入验证码正确
    return &#39;您输入验证码正确&#39;;
} else {
    //用户输入验证码错误
    return &#39;您输入验证码错误&#39;;
}

至此,驗證碼就完成了。以上就是Laravel的驗證碼庫gregwar/captcha的使用過程,有興趣的到PHP中文網搜尋更多哦~

相關推薦:

laravel使用mongodb資料庫的方法教學

##Laravel中開發簡訊驗證碼發送功能

Laravel中關於model validation的使用範例


以上是Laravel的驗證碼庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn