検索
ホームページPHPフレームワークThinkPHPThinkPHP 検証コードが表示されない問題を解決する

次の thinkphp フレームワーク チュートリアル コラムでは、ThinkPHP の認証コードが表示されない問題の解決方法を紹介しますので、困っている方の参考になれば幸いです。

ThinkPHP 検証コードが表示されない問題を解決する

今日、非常に奇妙なバグに遭遇しました。つまり、ローカルで正常に実行される PHP プログラムを作成しましたが、それが当事者 A のサーバーに公開されると、バグが発生します。認証コードが表示されないこと。

ThinkPHP 検証コードが表示されない問題を解決する

具体的な症状は、小さなひび割れた画像アイコンが Chrome ブラウザに表示されることです。画像を右クリックして、新しいウィンドウで開きます。まだ小さいです。エラー メッセージではなく、クラックされた画像 (xdebug 拡張機能と PHP エラー報告が有効な場合)。そうであれば、検証コードの URL ルーティングとビジネス ロジック コードには問題はないが、検証コードの生成プロセスに問題があることを意味します。私のデバッグのアイデアは次のとおりです:

1. GD ライブラリが正しくインストールされているかどうかを確認します。Linux では、yum、apt、または pecl を使用してインストールすることをお勧めします。Windows では、phpStudy 統合環境の使用を推奨します。これは共通に統合されています。使用されている拡張子であり、マウスの右ボタンで開くことができます。 (認証コード画像を別ウィンドウで開くと、エラーメッセージが表示され文字化けが多発する場合が該当します。エラーメッセージがある場合は、エラーメッセージに従ってデバッグを行ってください。)

ThinkPHP 検証コードが表示されない問題を解決する

# #2. 検証コードによって呼び出されるフォントが見つからないかどうかを確認します。検証コードコンポーネントによって呼び出される一部のフォントがターゲットコンピュータにインストールされていないため、検証コードモジュールのソースコードを解析する必要があります。私は ThinkPHP の公式 think-captcha を使用しています。そのソース コードは、vendortopthinkthink-captchasrc で見つけることができます。vendortopthinkthink-captchaassets で、この検証コード プラグインには独自のフォントが付属していることがわかります。そのため、ThinkPHP の検証コードは基本的に不要です。フォントの問題、別の検証コード プラグインの場合は、この場所を確認する必要があります。

3. バグのある検証コード イメージとローカル テストの正常な検証コード イメージをダウンロードし、メモ帳を使用して表示して比較します。

ThinkPHP 検証コードが表示されない問題を解決する

#上の画像はローカル環境の検証コードイメージのメモ帳ですが、より専門的な 16 進エディタを使用してファイルの差異を分析します。

ThinkPHP 検証コードが表示されない問題を解決する

図に示すように、不良ファイル bad は、先頭に EF BB BF とその他の数字が追加されている点を除いて、まったく同じ内容であることがわかりました。理由としては、サーバー上に専門的なコードエディタがないため、運用保守担当者が通常の Windows のメモ帳を使用して画像を修正したためではないかと推測しています。 PHP コード。この BOM ヘッダーが追加されます。

3 番目の理由の場合、解決策は 2 つあり、1 つは検証コードの imagepng 出力画像コードを呼び出す前に、ob_clean を使用して php の出力バッファをクリアする方法です。コードの BOM をバッチで削除するためにいくつかのツールを使用することもあります。

ThinkPHP 検証コードが表示されない問題を解決する

ここでは ob_clean を使用し、think-captcha のメイン ファイルである Captcha.php の 203 行目の前に ob_clean() を追加して、完全に解決できるようにします。 。パフォーマンスと安定性に対する厳しい要件がある場合は、BOM をバッチで削除するツールを使用することをお勧めします。そのほうが安全です。同時に、editplus などの専門的なコード エディターをサーバーにいつでもインストールすることをお勧めします。コードを変更するために Windows メモ帳を使用しないでください。

以上がThinkPHP 検証コードが表示されない問題を解決するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はsegmentfaultで複製されています。侵害がある場合は、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ヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 中国語版

SublimeText3 中国語版

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

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境