#php 検証コードが表示されない場合
質問 今日、ローカルに新しい仮想ホストを作成し、以前に作成した小さな php Web サイトをデプロイしました。これは、Wamp 統合環境を使用していたためです。 , したがって、このような状況は発生しません。ここで突然、認証コードが生成できないことに気づきました。 そこで、私はバグを見つける旅を始めました。インターネットで多くの解決策を検索し、最終的に解決しました。今、それを次のように共有します:bug1
上記の状況が発生した場合、最も基本的な間違いは、php に gd モジュールをインストールするのを忘れている可能性があることです。 ウィンドウ環境では、php.ini ファイルで見つける必要があるだけです。;extension=php_gd2.dllその前にあるセミコロンを削除するだけです。Apache を再起動した後、これは phpinfo( )
#ubuntu 環境の場合は、gd モジュールをインストールする必要があります。コマンドは
sudo apt-get install php5-gd
です。インストール後、上のモジュール。
bug2上記のインストールを実行してもまだ動作しないことが判明した場合は、次の問題である可能性があります
あなたのコード おそらく editpuls やメモ帳などのテキスト エディタを使用して編集されるため、デフォルトのエンコード形式は BOM 付きの UTF-8 です。
#UTF-8 BOM は UTF-8 署名とも呼ばれます。実際、UTF-8 BOM は UFT-8 には影響しません。UTF-16 および UTF-32 をサポートするために追加されました BOM、BOM 署名は、編集者の識別を容易にするために、現在のファイルがどのエンコーディングを使用しているかをエディターに伝えることを意味します。ただし、BOM はエディター には表示されませんが、追加の空白と同様に出力が生成されます。ライン。 。 通常、私は UTF-8 BOM フリー形式を使用しますそのため、コードのエンコード形式を BOM フリー形式に変更する必要があります。bug3
上記の 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 サイトの他の関連記事を参照してください。