PHP 検証コードの画像が表示されない場合の解決策
PHP 認証コードの画像が表示できません
PHP 認証コードの画像が表示できず、赤十字が表示されます。コードは次のとおりです:
image.php
- PHP コード
<br> <?php <br /> session_start(); <br /> if(isset($_POST['submit'])){ <br /> if(trim($_POST["test"])==$_SESSION['validationcode']){ <br /> echo '提交成功 <br>'; <br> }else{ <br> echo ' <font color="red">验证码输入错误!! </font> <br>'; <br> } <br> } <br> ?> <br> <html> <br> <head> <br> <title>Image </title> <br> <meta http-equiv="content-type" content="text/html;charset=gb2312"> <br> <script> <br> function newgdcode(obj,url) { <br> //后面传递一个随机参数,否则在IE7和火狐下,不刷新图片 <br> obj.src = url+ '?nowtime=' + new Date().getTime(); <br> } <br> </script> <br> </head> <br> <body> <br> <img src="imgcode.php" alt="看不清楚,换一张" style="cursor: pointer;" onClick="javascript: newgdcode(this,this.src);" /> <br> <form method="POST" action="image.php"> <br> <input type="text" name="test"> <br> <br> <input type="submit" name="submit" value="提交"> <br> </form> <br> </body> <br> </html> <br>
imgcode.php
- PHP コード
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> <?php session_start(); require_once('ValidationCode.php'); $image = new ValidationCode(60,20,4); $image->showImage(); $_SESSION['validationcode'] =$image->getCheckCode(); ?>
ValidationCode.php
- PHP コード
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> <?php /* クラス ValidationCode は、Validationcode.php という名前のファイルで宣言されています */ /* このクラスのオブジェクトを通じて、検証コード画像と検証コード文字列を動的に取得できます */ クラス ValidationCode { private $width; // 検証コード画像の幅 private $height; //検証コード画像の高さ private $codeNum //検証コードの文字数 private $checkCode //検証コード文字; private $image //検証コードキャンバス; /* コンストラクターは検証コード オブジェクトをインスタンス化し、一部のメンバー属性を初期化するために使用されます */ /* パラメータ幅: 検証コード画像の幅を設定します。デフォルトの幅値は 60 ピクセルです */ /* パラメーターの高さ: 検証コード画像の高さを設定します。デフォルトの高さの値は 20 ピクセルです */ /* パラメータ codeNum: 検証コードの文字と数字の数を設定します。デフォルトの数は 4 です */ function __construct($width=60, $height=20, $codeNum=4) { $this->width=$width //メンバー属性の幅を初期化します。 $this->height=$height; //メンバー属性の高さを初期化します。 $this->codeNum=$codeNum; //メンバー属性 codeNum を初期化します。 $this->checkCode=$this->createCheckCode() //メンバー属性 checkCode を初期化します。 } function showImage(){ //このメソッドにアクセスして画像をブラウザに出力します $this->getCreateImage(); //内部メソッドを呼び出してキャンバスを作成し、初期化します $this->outputText(); //ランダムな文字列を画像に出力します。 $this->setDisturbColor(); //画像に干渉ピクセルを設定します。 $this->outputImage(); // 対応する形式で画像を生成して出力します } function getCheckCode(){ //このメソッドにアクセスして、ランダムに作成された検証コード文字列を取得します return $this->checkCode //メンバー属性 $checkCode によって保存された文字列を返します。 } private function getCreateImage(){ //画像リソースの作成と背景の初期化に使用されます $this->image=imageCreate($this->幅,$this->高さ); $back=imageColorAllocate($this->image, 255, 255, 255); $border=imageColorAllocate($this->image, 0, 0, 0); imageRectangle($this->image,0,0,$this->width-1,$this->height-1,$border); } private function createCheckCode(){ //ユーザーが指定した数の文字列をランダムに生成します for($i=0;$icodeNum;$i++) { $number=rand(0,2); スイッチ($number){ ケース 0: $rand_number=rand(48,57); //数値 ケース 1: $rand_number=rand(65,90); //大文字 ケース 2: $rand_number=rand(97,122); //小文字 } $ascii=sprintf("%c",$rand_number); $ascii_number=$ascii_number.$ascii; } $ascii_number を返します; } private function setDisturbColor() { //干渉ピクセルを設定し、異なる色の 100 ポイントを画像に出力します for ($i=0;$iimage, rand(0,255), rand(0,255), rand(0,255)); imagesetpixel($this->image,rand(1,$this->width-2),rand(1,$this->height-2),$color); } } private function OutputText() { //ランダムな色、ランダムな配置、ランダムな文字列を画像に出力 for ($i=0;$icodeNum;$i++) { $bg_color = imagecolorallocate($this->image, rand(0,255), rand(0,128), rand(0,255)); $x = フロア($this->width/$this->codeNum)*$i+3; $y = rand(0,$this->height-15); imagechar($this->image, 5, $x, $y, $this->checkCode[$i], $bg_color); } } private function OutputImage(){ //GD がサポートする画像タイプを自動的に検出し、画像を出力します if(imagetypes() & IMG_GIF){ //GIF 形式の画像を生成する関数が存在するかどうかを判断します header("Content-type: image/gif"); //ヘッダー情報を送信し、MIME タイプを image/gif に設定します imagegif($this->image); //画像をGIF形式でブラウザに出力します。 }elseif(imagetypes() & IMG_JPG){ //JPG形式の画像を生成する関数が存在するかどうかを判定 header("Content-type: image/jpeg"); //ヘッダー情報を送信し、MIME タイプを image/jpeg に設定します imagejpeg($this->image, "", 0.5); //画像をJPEN形式でブラウザに出力します。 }elseif(imagetypes() & IMG_PNG){ //PNG 形式の画像を生成する関数が存在するかどうかを判断します header("Content-type: image/png"); // ヘッダー情報を送信し、MIME タイプを image/png に設定します imagepng($this->image); //画像をPNG形式でブラウザに出力します。 }elseif(imagetypes() & IMG_WBMP){ //WBMP形式の画像を生成する関数が存在するかどうかを判定 header("Content-type: image/vnd.wap.wbmp"); // ヘッダーを image/wbmp として送信します imagewbmp($this->image); //画像をWBMP形式でブラウザに出力します。 }else{ //サポートされている画像タイプがない場合 die("PHP はイメージの作成をサポートしていません!"); //イメージを出力せず、エラー メッセージを出力してプログラムを終了します。 } } function __destruct(){ //オブジェクトの終了時に画像リソースを破棄し、メモリを解放します imagedestroy($this->image); // GD ライブラリのメソッドを呼び出して画像リソースを破棄します } } ?> <div class="clear"></div>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加

Golang を使用する開発または学習のプロセス中に、unknown:rand.Seed というエラー メッセージが表示されることがあります。 Golang では、 rand パッケージの関数を使用する前に乱数シードを設定する必要があるため、このエラーは通常、乱数ジェネレーターを使用する必要がある場合に発生します。この記事では、このエラーを解決する方法について説明します。 1. math/rand パッケージを導入する まず、math/rand パッケージをコードに導入する必要があります。存在する

Windows 11 で Snipping Tool が機能しない理由 問題の根本原因を理解すると、適切な解決策を見つけるのに役立ちます。 Snipping Tool が正しく動作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開かなくなります。破損したアプリケーション: 起動時にスニッピング ツールがクラッシュする場合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競合する可能性があります。証明書の有効期限が切れています: アップグレード プロセス中のエラーにより、この問題が発生する可能性があります。これらの簡単な解決策は、ほとんどのユーザーに適しており、特別な技術知識は必要ありません。 1. Windows および Microsoft Store アプリを更新する

この記事では、無料の BingImageCreator を使用して高品質の出力を取得する 7 つの方法を紹介します。 BingImageCreator (現在は ImageCreator for Microsoft Designer として知られています) は、優れたオンライン人工知能アート ジェネレーターの 1 つです。ユーザーのプロンプトに基づいて、非常にリアルな視覚効果を生成します。プロンプトがより具体的、明確、創造的であればあるほど、より良い結果が得られます。 BingImageCreator は、高品質の画像の作成において大きな進歩を遂げました。 Dall-E3 トレーニング モードを使用するようになり、より高いレベルの詳細とリアリズムが表示されます。ただし、一貫して HD 結果を生成できるかどうかは、高速な処理などのいくつかの要因によって決まります。

Xiaomi 携帯電話で画像を削除する方法? Xiaomi 携帯電話で画像を削除できますが、ほとんどのユーザーは画像の削除方法を知りません. 次に、編集者が提供する Xiaomi 携帯電話での画像の削除方法に関するチュートリアルです。ぜひご参加ください。 Xiaomi 携帯電話で画像を削除する方法 1. まず Xiaomi 携帯電話の [アルバム] 機能を開きます; 2. 次に、不要な写真を確認して右下の [削除] ボタンをクリックします; 3. 次に、[アルバム] をクリックします。上部にある特別な領域に入り、[ごみ箱]を選択します; 4. 次に、下図に示すように[ごみ箱を空にする]を直接クリックします; 5. 最後に[完全に削除]を直接クリックして完了します。

rand() 関数は、各呼び出しで同じ初期シードを使用します。デフォルトの初期シードはオペレーティング システムの時間から取得されますが、精度はマイクロ秒のみです。つまり、非常に短い期間内に、多くの rand() 関数呼び出しで同じ初期シードが使用され、同じ乱数が生成されます。では、この問題をどうやって解決すればよいでしょうか?

LINUX はオープン ソース オペレーティング システムです。その柔軟性とカスタマイズ性により、多くの開発者やシステム管理者が最初に選択します。LINUX システムでは、画像処理は非常に重要なタスクであり、Imagemagick と Image は 2 つの非常に人気のある画像処理ツールです。この記事では、Centos システムに Imagemagick と Image をインストールする方法を紹介し、詳細なインストール チュートリアルを提供します。 Imagemagic のインストール Centos チュートリアル Imagemagick は、コマンド ラインでさまざまな画像操作を実行できる強力な画像処理ツールセットです。Centos システムに Imagemagick をインストールする手順は次のとおりです: 1

パート 1: 最初のトラブルシューティング手順 Apple のシステムステータスを確認する: 複雑な解決策を掘り下げる前に、基本から始めましょう。問題はデバイスにあるのではなく、Apple のサーバーがダウンしている可能性があります。 Apple のシステム ステータス ページにアクセスして、AppStore が適切に動作しているかどうかを確認してください。問題があれば、Apple が修正してくれるのを待つしかありません。インターネット接続を確認します。「AppStore に接続できません」問題は接続不良が原因である場合があるため、安定したインターネット接続があることを確認してください。 Wi-Fi とモバイル データを切り替えるか、ネットワーク設定をリセットしてみてください ([一般] > [リセット] > [ネットワーク設定のリセット] > [設定])。 iOS バージョンを更新します。
