ホームページ  >  記事  >  バックエンド開発  >  PHPイメージ検証コードが表示されない

PHPイメージ検証コードが表示されない

王林
王林オリジナル
2019-09-30 11:53:443242ブラウズ

PHPイメージ検証コードが表示されない

質問:

PHPイメージ検証コードが表示されない

#エラー 1:

最も基本的な間違いは、おそらく php に gd モジュールをインストールするのを忘れていることです。ウィンドウ環境では、php.ini ファイルでこれを見つける必要があるだけです:

;extension=php_gd2.dll

その前にあるセミコロンを削除するだけです。Apache を再起動した後、phpinfo() でこれを見つけることができます:

PHPイメージ検証コードが表示されない

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 サイトの他の関連記事を参照してください。

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