エラー:
今日、新しい仮想ホストをローカルに作成し、デプロイ時に以前に作成したものを配置しました。小規模な PHP Web サイトでは、以前に使用されていた wamp 統合環境により、この状況は発生しませんでした。ここで突然、認証コードが生成できないことに気づきました。
そこで、私はバグを見つける旅を始めました。インターネットで多くの解決策を検索し、最終的に解決しました。今、それを次のように共有します:
方法 1:
上記の状況での最も基本的な間違いは、php に gd モジュールをインストールするのを忘れた可能性があることです。ウィンドウ環境では、php.ini ファイルでこれを見つける必要があるだけです:
;extension=php_gd2.dll
その前にあるセミコロンを削除するだけです。Apache を再起動した後、phpinfo() でこれを見つけることができます:
ubuntu 環境の場合は、gd モジュールをインストールする必要があります。コマンドは次のとおりです:
sudo apt-get install php5-gd
インストール後、上記のモジュールも表示されます。
方法 2:
上記のインストールを行ってもまだ動作しない場合は、次の問題が考えられます。
コードは、editpuls やメモ帳などのテキスト エディターを使用して編集されている可能性が高く、デフォルトのエンコード形式は BOM 付きの utf-8 です。 UTF-8 BOM は UTF-8 署名とも呼ばれます。実際、UTF-8 BOM は UFT-8 には影響しません。UTF-16 と UTF-32 をサポートするために追加されました。
BOM 署名の意味は、編集者の識別を容易にするために、現在のファイルがどのようなエンコーディングを使用しているかをエディターに伝えることです。ただし、BOM はエディターには表示されませんが、追加の出力と同様に出力が生成されます。空白行。通常、私は UTF-8 BOM フリー形式を使用するため、コードのエンコード形式を BOM フリー形式に変更する必要があります。
方法 3:
上記の 2 つの手順を実行してもまだ機能しない場合は、切り札を使用する必要があります。 ob_clean() を使用してキャッシュをクリアします。 ob_clean の機能は出力バッファの内容を破棄することです。生成された画像ファイルが多数ある場合、正しくアクセスするにはバッファを頻繁にクリアする必要があります。
public function create() { ob_clean(); $a = new verify(); session::set('captcha', strtolower($a->create(4, 15))); view::assign("captcha", $a); view::display("captcha"); exit(0); }
注:
PHP バージョンより上位のバージョンを使用する場合、未定義の変数は使用できません。使用しないと、$new_number および $_SESSION[' check_checks というエラーが報告されます。 '] は、使用前に isset で判断する必要があります。または、古いコードを使用する場合は、先頭に error_reporting(E_ALL & ~E_NOTICE) を追加して、エラー通知をブロックします (推奨されません)。そのため、isset() を使用して、定義されていることを確認するように判断します。そうでない場合、認証コードが表示されない可能性があります。
推奨ビデオ チュートリアル: PHP ビデオ チュートリアル
以上がPHP検証画像が表示されないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。