ホームページ PHPフレームワーク ThinkPHP ThinkPHP6を使用して検証コード機能を実装する方法

ThinkPHP6を使用して検証コード機能を実装する方法

Jun 21, 2023 pm 05:48 PM
thinkphp 検証コード 成し遂げる

Web サイトやアプリケーションのログイン、登録、パスワード取得などのログイン認証システムでは、確認コード機能が一般的なユーザー確認方法になっています。検証コード機能は、悪意のある攻撃やロボット攻撃を効果的に防止し、ユーザーデータとシステムのセキュリティを保護します。この記事では、ThinkPHP6 フレームワークを使用して検証コード機能を実装する方法を紹介します。

1. ThinkPHP6 検証コード関数の概要

ThinkPHP6 フレームワークの検証コード関数は、thinkcaptchaCaptcha クラスを使用して実装できます。このクラスでは、検証コードの長さ、フォント、フォントサイズ、干渉線の種類、干渉点の種類などを設定するための多くのオプションが提供されます。これらのオプションを使用すると、特定のビジネス シナリオのニーズに合わせて独自の検証コードをカスタマイズできます。

2. 実装手順

  1. ThinkPHP6 フレームワークのインストール

ローカル環境で PHP 環境を構成した後、composer を使用して ThinkPHP6 をインストールできます。フレームワーク。コマンド ラインで次のコマンドを入力します。

composer create-project topthink/think myproject
ログイン後にコピー

これにより、myproject という名前のプロジェクト ディレクトリが作成され、プロジェクトに必要なすべての依存関係が自動的にインストールされ、初期化されます。

  1. 検証コード メソッドの作成

ThinkPHP6 フレームワークでは、コントローラーで検証コード メソッドを定義できます。たとえば、Index コントローラーで verify メソッドを作成できます。このメソッドは、検証コードの長さを指定するパラメータを受け取ることができます。コードは次のとおりです:

namespace appindexcontroller;

use thinkcaptchaCaptcha;

class Index
{
    public function verify($length = 4)
    {
        $captcha = new Captcha([
            'length'    =>  $length,
            'useNoise'  =>  true,
            'fontSize'  =>  30,
            'useCurve'  =>  false,
        ]);
        return $captcha->entry();
    }
}
ログイン後にコピー

上記のコードでは、Captcha クラスを使用して検証コードを生成します。検証コードの長さ、干渉線または干渉点を使用するかどうかなどを指定するために、いくつかのパラメータを渡します。

  1. 確認コードの表示

上記のコントローラー コードでは、$captcha->entry() メソッドを使用して確認コードを表示します。 。このメソッドは画像を生成し、ブラウザ上に直接出力します。

テンプレートまたはビュー ファイルに img 要素を作成し、その src 属性を手順 2 で作成した検証コード メソッドの URL に設定すると、検証コードをフロントエンドに表示できます。ページ。コードは次のとおりです。

<img src="{:url('index/verify', ['length'=>4])}" onclick="this.src=this.src+'?rand='+Math.random()" />
ログイン後にコピー

上記のコードでは、url 関数を使用して検証コード画像の URL を生成し、長さを 4 に設定します。画像をクリックすると、検証コード画像が表示されます。検証コードを更新するためにリロードされます。

  1. 検証検証コード

PHP のセッション メカニズムを使用して、フォーム データを送信するときにユーザーが入力した検証コードを取得し、生成された検証コードと比較できます。比較して確認コードが正しいかどうかを確認します。コードは次のとおりです。

namespace appindexcontroller;

use thinkcaptchaCaptcha;

class Index
{
    public function verify($length = 4)
    {
        $captcha = new Captcha([
            'length'    =>  $length,
            'useNoise'  =>  true,
            'fontSize'  =>  30,
            'useCurve'  =>  false,
        ]);
        return $captcha->entry();
    }
    
    public function check()
    {
        $code = input('post.captcha');
        if(captcha_check($code)){
            // 验证码正确
        }else{
            // 验证码错误
        }
    }
}
ログイン後にコピー

上記のコードでは、ユーザーが入力した確認コードを検証するためのチェック メソッドを定義します。 captcha_check() 関数を使用して、ユーザーが入力した検証コードと生成された検証コードが等しいかどうかを比較します。

  1. 認証コード更新機能

ユーザーが認証コードを誤って入力した場合に、ユーザーが認証コードを通過できるように、認証コードを更新する機能を提供する必要がある場合があります。検証が速くなります。この機能は、ページを更新するか、検証コード画像の URL を変更するだけで実現できます。

フロントエンド ページで、検証コード画像の要素に更新ボタンを追加します。このボタンをクリックすると、検証コード画像が再読み込みされ、検証コードが更新されます。コードは次のとおりです。

<img id="captcha" src="{:url('index/verify', ['length'=>4])}" onclick="this.src=this.src+'?rand='+Math.random()" />
<button onclick="document.getElementById('captcha').src='{:url('index/verify', ['length'=>4])}?' + Math.random(); return false;">刷新验证码</button>
ログイン後にコピー

上記のコードでは、JavaScript コードを使用して検証コード イメージの src 属性を変更し、Math.random() 関数をパラメーターとして url 関数に渡します。このようにして、更新するたびに、検証コードをリロードするための新しい URL が生成されます。

  1. 完全なサンプル コード

上記のコード スニペットは十分に完成していない可能性があります。以下は、ThinkPHP6 を使用して検証コード関数を実装した完全なコードです。

namespace appindexcontroller;

use thinkcaptchaCaptcha;

class Index
{
    // 验证码函数
    public function verify($length = 4)
    {
        $captcha = new Captcha([
            'length'    =>  $length,
            'useNoise'  =>  true,
            'fontSize'  =>  30,
            'useCurve'  =>  false,
        ]);
        return $captcha->entry();
    }
    
    // 验证码校验函数
    public function check()
    {
        $code = input('post.captcha');
        if(captcha_check($code)){
            // 验证码正确
        }else{
            // 验证码错误
        }
    }
}
ログイン後にコピー
<!-- 登录表单页面 -->
<form method="post" action="{:url('index/check')}">
    <div>
        <label>用户名</label>
        <input type="text" name="username" />
    </div>
    <div>
        <label>密码</label>
        <input type="password" name="password" />
    </div>
    <div>
        <label>验证码</label>
        <img id="captcha" src="{:url('index/verify', ['length'=>4])}" onclick="this.src=this.src+'?rand='+Math.random()" /><br/>
        <input type="text" name="captcha" />
        <a href="#" onclick="document.getElementById('captcha').src='{:url('index/verify', ['length'=>4])}?' + Math.random(); return false;">刷新验证码</a>
    </div>
    <button type="submit">登录</button>
</form>
ログイン後にコピー

上記は、ThinkPHP6 を使用して検証コード機能を実装するプロセス全体です。 Web アプリケーションまたは Web サイトを開発している場合、CAPTCHA 機能を使用すると、システムのセキュリティが向上し、悪意のある攻撃からユーザー データを保護できます。

以上がThinkPHP6を使用して検証コード機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Google Chrome で認証コードの画像が表示されない場合はどうすればよいですか? Chrome ブラウザで認証コードが表示されません。 Google Chrome で認証コードの画像が表示されない場合はどうすればよいですか? Chrome ブラウザで認証コードが表示されません。 Mar 13, 2024 pm 08:55 PM

Google Chrome で認証コードの画像が表示されない場合はどうすればよいですか? Google Chrome を使用して Web ページにログインするために確認コードが必要になる場合があります。一部のユーザーは、画像検証コードを使用すると、Google Chrome で画像のコンテンツが適切に表示されないことに気づきます。何をすべきでしょうか? Google Chromeの認証コードが表示されない場合の対処法を以下のエディターでご紹介しますので、皆様のお役に立てれば幸いです!方法の紹介: 1. ソフトウェアに入り、右上隅の「詳細」ボタンをクリックし、下のオプションリストで「設定」を選択してに入ります。 2. 新しいインターフェースに入ったら、左側の「プライバシー設定とセキュリティ」オプションをクリックします。 3. 次に、右側の「Web サイト設定」をクリックします。

Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか? Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか? Mar 24, 2024 am 11:27 AM

Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか?ソーシャルメディアの台頭により、WeChatは人々の日常生活に欠かせないコミュニケーションツールの1つになりました。ただし、多くの人は、同じ携帯電話で同時に複数の WeChat アカウントにログインするという問題に遭遇する可能性があります。 Huawei 社の携帯電話ユーザーにとって、WeChat の二重ログインを実現することは難しくありませんが、この記事では Huawei 社の携帯電話で WeChat の二重ログインを実現する方法を紹介します。まず第一に、ファーウェイの携帯電話に付属するEMUIシステムは、デュアルアプリケーションを開くという非常に便利な機能を提供します。アプリケーションのデュアルオープン機能により、ユーザーは同時に

thinkphpプロジェクトの実行方法 thinkphpプロジェクトの実行方法 Apr 09, 2024 pm 05:33 PM

ThinkPHP プロジェクトを実行するには、Composer をインストールし、Composer を使用してプロジェクトを作成し、プロジェクト ディレクトリに入り、php bin/consoleserve を実行し、http://localhost:8000 にアクセスしてようこそページを表示する必要があります。

thinkphp にはいくつかのバージョンがあります thinkphp にはいくつかのバージョンがあります Apr 09, 2024 pm 06:09 PM

ThinkPHP には、さまざまな PHP バージョン向けに設計された複数のバージョンがあります。メジャー バージョンには 3.2、5.0、5.1、および 6.0 が含まれますが、マイナー バージョンはバグを修正し、新機能を提供するために使用されます。最新の安定バージョンは ThinkPHP 6.0.16 です。バージョンを選択するときは、PHP バージョン、機能要件、コミュニティ サポートを考慮してください。最高のパフォーマンスとサポートを得るには、最新の安定バージョンを使用することをお勧めします。

thinkphpの実行方法 thinkphpの実行方法 Apr 09, 2024 pm 05:39 PM

ThinkPHP フレームワークをローカルで実行する手順: ThinkPHP フレームワークをローカル ディレクトリにダウンロードして解凍します。 ThinkPHP ルート ディレクトリを指す仮想ホスト (オプション) を作成します。データベース接続パラメータを構成します。 Webサーバーを起動します。 ThinkPHP アプリケーションを初期化します。 ThinkPHP アプリケーションの URL にアクセスして実行します。

PHP プログラミング ガイド: フィボナッチ数列を実装する方法 PHP プログラミング ガイド: フィボナッチ数列を実装する方法 Mar 20, 2024 pm 04:54 PM

プログラミング言語 PHP は、さまざまなプログラミング ロジックやアルゴリズムをサポートできる、Web 開発用の強力なツールです。その中でも、フィボナッチ数列の実装は、一般的で古典的なプログラミングの問題です。この記事では、PHP プログラミング言語を使用してフィボナッチ数列を実装する方法を、具体的なコード例を添付して紹介します。フィボナッチ数列は、次のように定義される数学的数列です。数列の最初と 2 番目の要素は 1 で、3 番目の要素以降、各要素の値は前の 2 つの要素の合計に等しくなります。シーケンスの最初のいくつかの要素

Huawei携帯電話にWeChatクローン機能を実装する方法 Huawei携帯電話にWeChatクローン機能を実装する方法 Mar 24, 2024 pm 06:03 PM

Huawei 携帯電話に WeChat クローン機能を実装する方法 ソーシャル ソフトウェアの人気と人々のプライバシーとセキュリティの重視に伴い、WeChat クローン機能は徐々に人々の注目を集めるようになりました。 WeChat クローン機能を使用すると、ユーザーは同じ携帯電話で複数の WeChat アカウントに同時にログインできるため、管理と使用が容易になります。 Huawei携帯電話にWeChatクローン機能を実装するのは難しくなく、次の手順に従うだけです。ステップ 1: 携帯電話システムのバージョンと WeChat のバージョンが要件を満たしていることを確認する まず、Huawei 携帯電話システムのバージョンと WeChat アプリが最新バージョンに更新されていることを確認します。

laravelとthinkphpではどちらが優れていますか? laravelとthinkphpではどちらが優れていますか? Apr 09, 2024 pm 03:18 PM

Laravel フレームワークと ThinkPHP フレームワークのパフォーマンスの比較: ThinkPHP は、最適化とキャッシュに重点を置いて、一般に Laravel よりもパフォーマンスが優れています。 Laravel は優れたパフォーマンスを発揮しますが、複雑なアプリケーションの場合は、ThinkPHP の方が適している可能性があります。

See all articles