ホームページ > バックエンド開発 > PHPチュートリアル > Laravel-5.1 では、mews キャプチャがプロジェクトに統合されています。

Laravel-5.1 では、mews キャプチャがプロジェクトに統合されています。

WBOY
リリース: 2016-06-20 12:47:26
オリジナル
1383 人が閲覧しました

少し調べた結果、最終的にlaravel 5.1で確認コードを適用できるようになりました。

私は英語力が 5 級なので、役に立つものはほとんど見つからなかったので、github で確認コード パッケージを検索しようと考えました。

ヒント: github 上のパッケージに使用方法が記載されている場合が多いですが、通常は上記の実装に従って作成できます。

私は mews captcha を使用しています

git のアドレス: https://github.com/mewebstudio/captcha 上記の使用法は非常に詳細です。

ハンズオン実装:

-- laravel プロジェクト ディレクトリに手動で入力します

-- 対応するディレクトリで、composer.json ファイルを見つけますそれを開き、次のステートメントを追加します:

図に示すように: ステートメントを追加します

{  "require": {    ....    ....    ....    "mews/captcha": "~2.0"  },  "minimum-stability": "dev"}
ログイン後にコピー

--コンポーザーの更新を実行しますエラーが報告された場合は、最初に -update を実行してから、composer update

を実行してください。config/app.php を見つけて開き、次のステートメントを追加します。

1. このファイルを開き、プロバイダー項目を見つけて次のステートメントを追加します

Mews\Captcha\CaptchaServiceProvider::class,
ログイン後にコピー

2. エイリアス項目を見つけて追加します次のステートメント:

ステートメントを追加:

'Captcha' => Mews\Captcha\Facades\Captcha::class,
ログイン後にコピー

--php 職人のベンダーを実行:publish

上記の手順をすべて実行し、ディレクトリを表示します。cmd ウィンドウに、vendor の下に追加の mews ディレクトリがあり、Captcha を使用して名前空間を使用できることがわかります。 php は config/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 パラメータ.php 内の対応するキーは次のとおりです:

default、 flat、mini、inverse。これらは 4 つのスタイルの検証コードを表します。さまざまなスタイルに合わせて設定できます。config/captcha.php

で直接設定項目を変更します。例:

1. app/Http/routes.php

でルーティングを設定します。

captcha/test (テスト パスを表す) は、CaptchaController の下にパブリック関数 Index() をマッピングします。 {}

captcha/mews は、検証コードの出力をマッピングし、パブリック関数をマッピングしますCaptchaController mews() の下の関数 {}

2. コントローラーを作成します

cmd ウィンドウで、

php artisan make:controller CaptchaController --plain
ログイン後にコピー

と直接入力します。成功した場合は、新しいファイル CaptchaController.php が app/Http/Controllers/

に生成されたことを示します。3. app/Http/Controllers/CaptchaController.php に新しいindex() メソッドと mews() メソッドを作成します。 🎜>

<?phpnamespace App\Http\Controllers;use App\Http\Requests;use App\Http\Controllers\Controller;use Illuminate\Http\Request;//引用对应的命名空间use Session;use Captcha;class CaptchaController extends Controller {  /**   * 测试页面   */  public function index() {    // $mews = Captcha::src('inverse');, compact('mews')    return view('captcha.index');  }  /*创建验证码*/  public function mews() {    return Captcha::create('default');  }}
ログイン後にコピー

4. ビューを作成します

resources/views/ ディレクトリに captcha ディレクトリを作成し、それぞれ新しい Index.blade.php を作成し、レイアウトを作成しますスタイルの調整

<!DOCTYPE html><html lang="en"><head>  <meta charset="utf-8">  <meta http-equiv="X-UA-Compatible" content="IE=edge">  <meta name="viewport" content="width=device-width, initial-scale=1">  <title>Learn Laravel 5.1</title>  <link href="{{ asset('/css/app.css') }}" rel="stylesheet">  <!-- Fonts -->  <link href='//fonts.useso.com/css?family=Roboto:400,300' rel='stylesheet' type='text/css'>  <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->  <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->  <!--[if lt IE 9]>    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>  <![endif]--></head><body>  <h2>该页面仅仅用来学习验证码</h2>  <h3>mews</h3>  @if(count($errors) > 0)  <div class="alert alert-danger">    <ul>      @foreach($errors->all() as $error)      <li>{{ $error }}</li>      @endforeach    </ul>  </div>  @endif  <form action="{{ url('test/cpt') }}" method="post">    <input type="hidden" value="POST" name="_method"><!--   --><input type="hidden" value="{{ csrf_token() }}" name="_token" /><!--   --><input type="text" name="cpt" value="" /><!--   --><img src="{{ url('captcha/mews') }}" onclick="this.src='{{ url('captcha/mews') }}?r='+Math.random();" alt=""><!--   --><input type="submit" value="Submit" />  </form>  <div id="footer" style="text-align: center; border-top: dashed 3px #eeeeee; margin: 50px 0; padding: 20px;">    &copy;2015 <a href="http://www.cnblogs.com/Zell-Dinch/">ZellDincht</a>  </div>  <!-- Scripts -->  <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>  <script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/js/bootstrap.min.js"></script></body></html>
ログイン後にコピー

この時点で次のように入力します: http://your-host/captcha/test 表示

これは私のものですレイアウトとキャプチャ

5. app/Http/routes.php にルーティングを追加します

ポストを通じてテストするためにバックグラウンドに送信します

6 TestController の cpt メソッドは次のとおりです:

<?phpnamespace App\Http\Controllers\Test;use Illuminate\Http\Request;use App\Http\Requests;use App\Http\Controllers\Controller;use Input, Validator, Redirect, Session, Captcha;class TestController extends Controller{  public function cpt(Request $request) {    // dd(Input::get('cpt'));    $rules = [      "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() を使用するメソッドは使用しません。具体的な状況を詳しく分析してみましょう。


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート