国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ PHPフレームワーク ThinkPHP thinkphp5 検証コードが失敗しました

thinkphp5 検証コードが失敗しました

May 26, 2023 am 10:53 AM

ThinkPHP5 は、MVC モデルに基づいて開発された PHP フレームワークであり、使いやすく強(qiáng)力であり、エンタープライズ レベルの Web アプリケーション開発で広く使用されています。

検証コード機(jī)能はセキュリティ検証機(jī)能としてよく使われる機(jī)能の一つですが、実際の開発プロセスでは検証コードが有効にならない、あるいは検証に失敗するという場面に遭遇する人も多いと思います。これらの狀況に対する考えられる原因と解決策を分析してみましょう。

  1. 認(rèn)証コードが表示されない問題

まず認(rèn)証コードプラグインが正しく導(dǎo)入されているか確認(rèn)してください。

ThinkPHP5 では、検証コード プラグインは thinkcaptcha ディレクトリにあり、次のコードを通じて導(dǎo)入できます:

use thinkcaptchaCaptcha;

//顯示驗(yàn)證碼
public function verify(){
    $captcha = new Captcha();
    return $captcha->entry();
}

フロントエンドの HTML コードに検証コードを追加します。

<img src="{:captcha_src()}" alt="captcha" onclick="this.src='{:captcha_src()}?t='+Math.random();">

If それでも確認(rèn)コードが正常に表示されない場合は、キャッシュに問題がある可能性があります。ブラウザのキャッシュをクリアするか、別のブラウザを使用してテストしてみてください。

  1. 認(rèn)証コードの認(rèn)証が失敗する問題

認(rèn)証コードが正しく表示されていることを確認(rèn)しても、認(rèn)証中に認(rèn)証コード エラーが表示される場合は、次のことを行う必要があります。次の點(diǎn)を確認(rèn)してください:

2.1 検証コード検証中に送信されたフォーム パラメーター名は正しいですか?

デフォルトでは、ThinkPHP5 検証コード プラグインは、保存するために captcha という名前の POST パラメーターを生成します。検証コードの値。検証が失敗した場合は、JSON 形式のエラー情報(bào)を返す必要があります。したがって、検証するときは、フォームで送信されたパラメータ名もキャプチャであることを確認(rèn)する必要があります。例:

//驗(yàn)證驗(yàn)證碼
if (!captcha_check(input('post.captcha'))) {
    return json([
        'status' => '0',
        'msg' => '驗(yàn)證碼錯(cuò)誤!'
    ]);
}

2.2 検証コードでは大文字と小文字が區(qū)別されません

検証コードでは大文字と小文字が區(qū)別されます。したがって、検証コードを確認(rèn)するときは、入力された検証コードが生成された検証コードとまったく同じであることを確認(rèn)する必要があります。検証コードの大文字と小文字を區(qū)別しないようにするには、captcha() メソッドを呼び出すときにパラメータを追加します。例:

$captcha = new Captcha(['useZh' => false, 'useImgBg' => true, 'fontSize' => 20, 'useNoise' => true, 'length' => 4, 'useCurve' => false, 'fontttf' => '4.ttf', 'bg' => [151, 232, 66], 'reset' => true, 'codeSet' => '0123456789', 'expire' => 300, 'zhSet' => '']);

上記のパラメータでは、useZh パラメータを使用して中國語の検証コードを表示します。背景畫像とノイズの生成には、useImgBg パラメーターと useNoise パラメーターが使用されます。 length パラメーターは検証コードの長さを示し、codeSet パラメーターは検証コードの文字セットを設(shè)定し、expirer パラメーターは検証コードの有効期限を設(shè)定します。ここでは zhSet が空の文字列に設(shè)定されていることに注意してください。これは、中國語の検証コードが有効になっていないことを意味します。

2.3 同じページでの検証コードとフォームの送信

検証コードとフォームの送信が同じページにあり、検証操作を Ajax 経由で送信する必要がある場合、問題が発生する可能性があります。クロスドメイン、セッション障害などにより、検証コードが正常に検証できないことが原因です。現(xiàn)時(shí)點(diǎn)では、Access-Control-Allow-Origin をクロスドメイン環(huán)境で設(shè)定する必要があります。例:

header('Access-Control-Allow-Origin: *');

また、セッションが確実に渡されるようにする必要もあります。次の內(nèi)容を追加できます。 session_start() の前の

header('P3P: CP=CAO PSA OUR');
session_start();
ThinkPHP5 マニュアルの検証コード プラグインに関するセクションを注意深く読むか、公式フォーラムで関連する質(zhì)問を検索して、この問題のさらなる解決策とヒントを入手してください。

つまり、検証コードを設(shè)計(jì)および実裝するときは、セキュリティとユーザー エクスペリエンスのバランスを考慮し、共通の設(shè)計(jì)原則とベスト プラクティスに従い、信頼性を確保するためにチェックされたサードパーティのコンポーネントとライブラリを使用する必要があります。および検証コードの有効性。

以上がthinkphp5 検証コードが失敗しましたの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中國語版

SublimeText3 中國語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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