Laravel-5.1 將mews captcha整合到項目中!

來源:互聯網
上載者:User
經過摸索,終於能在laravel 5.1中應用驗證碼了。

因為英語渣五水平,所以幾乎沒搜尋到什麼有用的,於是考慮在github上搜尋驗證碼包!

提示: github上的package中往往會有使用說明,照著上面的實現,一般都能做出來。

我使用的是mews captcha

git 上的地址: https://github.com/mewebstudio/captcha 上面的使用很詳細了。

動手實現:

-- 手動進入 laravel 項目目錄

-- 在對應目錄下,找到composer.json檔案,開啟它,添加如下語句:

添加語句

{  "require": {    ....    ....    ....    "mews/captcha": "~2.0"  },  "minimum-stability": "dev"}

-- 執行composer update, 如果報錯,請先執行composer self-update, 然後再執行 composer update

-- 找到config/app.php開啟,添加如下語句:

1.開啟這個檔案,找到providers項,添加如下語句

Mews\Captcha\CaptchaServiceProvider::class,

2.找到aliases項,添加如下語句:

添加語句:

'Captcha' => Mews\Captcha\Facades\Captcha::class,

-- cmd視窗中執行 php artisan vendor:publish

通過上面的所有步驟,查看目錄,你會發現在vendor下多了mews目錄,並且你可以使用命名空間 use Captcha, 在config/captcha.php中存在一個驗證碼的設定檔captcha.php。

-- 上面的所有步驟在 https://github.com/mewebstudio/captcha 中同樣存在!

我們來看一看新增的vendor/mews目錄

我們找到vendor/mews/captcha/src/captcha.php

尋找public 方法, 發現:

public function create($var) --- 產生驗證碼

public function check($var) --- 判斷輸入和驗證碼是否相等

public function src($var) --- 輸出img屬性src的連結

public function img($var) --- 輸出img標籤

-- 其中,$var 參數就是,config/captcha.php 中 對應的鍵,分別可以是:

default, flat, mini, inverse 代表了四種風格的驗證碼!可以針對不同風格進行配置,直接在config/captcha.php中修改配置項

-- 執行個體:

1.在app/Http/routes.php中配置路由

其中captcha/test, 表示測試路徑, 映射 CaptchaController 下的 public function index() {}

captcha/mews 映射驗證碼的輸出,映射 CaptchaController 下的 public function mews() {}

2.建立控制器

在cmd視窗中,直接輸入

php artisan make:controller CaptchaController --plain

如果提示成功,則說明在 app/Http/Controllers/ 下產生了新檔案 CaptchaController.php

3.在app/Http/Controllers/CaptchaController.php中建立index() 和 mews() 方法

    

4.建立視圖

在resources/views/目錄下建立captcha目錄,分別建立index.blade.php 並且大概做個布局和樣式調整

        Learn Laravel 5.1              

該頁面僅僅用來學習驗證碼

mews

@if(count($errors) > 0)
    @foreach($errors->all() as $error)
  • {{ $error }}
  • @endforeach
@endif ©2015 ZellDincht

這時候輸入:http://your-host/captcha/test 查看

這是我的布局和captcha

5. 添加路由到app/Http/routes.php

我通過post提交到後台進行測試

6.在TestController中cpt方法如下:

 'required|captcha'    ];    $messages = [      'cpt.required' => '請輸入驗證碼',      'cpt.captcha' => '驗證碼錯誤,請重試'    ];   //如果僅僅驗證captcha的值可以   //採用 Captcha::check(Input::get('cpt')); //返回bool    $validator = Validator::make(Input::all(), $rules, $messages);    if($validator->fails()) {      return Redirect::back()->withErrors($validator);    } else {      return "驗證碼OK!";    }  }}

以上,測試如下,

驗證錯誤:

驗證正確:

這裡沒有採用使用Captcha::check()的方式,具體情況具體分析吧。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.