ホームページ  >  記事  >  バックエンド開発  >  PHPで開発された画像認証コードが表示されない

PHPで開発された画像認証コードが表示されない

王林
王林オリジナル
2019-11-18 09:22:142068ブラウズ

PHPで開発された画像認証コードが表示されない

1. gd モジュールをインストールします

ウィンドウ環境では、「;extension=php_gd2.dll」を見つけるだけで済みます。 php.ini ファイルの前のセミコロンを削除するだけです。Apache を再起動すると、phpinfo() で gd 情報を見つけることができます。

ubuntu 環境の場合は、gd モジュールをインストールする必要があります。コマンドは

sudo apt-get install php5-gd

です。インストール後、上記のモジュールも表示されます。

2. コードファイルのエンコードを確認

BOMありutf-8の場合はBOMなし形式に変更する必要があります。

3. 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);
    }

4. PHP バージョンの問題

PHP バージョンより高いバージョンを使用する場合、未定義の変数は使用できません。そうでない場合は、通知エラーが報告されます。 New_number と $_SESSION['check_checks'] は、使用前に isset で判断する必要があります。または、古いコードを使用する場合は、通知エラーをシールドするために error_reporting(E_ALL & ~E_NOTICE); を追加します (非推奨))。
したがって、isset() を使用して、定義されていることを確認します。

解決しない場合は?

デバッグの結果、フォントファイルが見つからないため認証コードが表示されないことが分かりました。

$font="simhei.ttf"

は相対パスで記述されており、プロジェクト内にフォントファイルを配置する必要があります。または、システムフォントファイルへの絶対パスを書き込みます。
これを lib フォルダーに置きました:

$font=LIB_PATH."simhei.ttf"

推奨チュートリアル: PHP チュートリアル
#

以上がPHPで開発された画像認証コードが表示されないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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