ホームページ > バックエンド開発 > PHPチュートリアル > PHP が検証コードを生成するときに「独自のエラーが発生したため、画像を表示できません」の解決策_PHP Tutorial

PHP が検証コードを生成するときに「独自のエラーが発生したため、画像を表示できません」の解決策_PHP Tutorial

WBOY
リリース: 2016-07-21 14:59:25
オリジナル
795 人が閲覧しました

今日、コードを使用して PHP 検証コード生成機能を実装したところ、Firefox が「画像が独自のエラーのため表示できません。」というプロンプトを表示し続けることがわかりました。また、作成者は「ブラウザーが画像を表示する場合」というプロンプトを表示しました。独自のエラーのため表示できません。テキスト内のスペースを削除することはできますが、コード内のスペースをすべて削除しても、検査画像は表示できません。

そこで私は徹底的にグーグルで調べましたが、ほとんどの解決策は、HTML出力を防ぐためにすべてのスペースを削除し、「

確認コード生成ファイル checkNum_session.php

コードをコピー コードは以下の通りです:

Header("Content-type: image/png");
/*
* Initialization
*/
$border = 1; //境界線が必要かどうか 1 はい: 0 いいえ
$how = 4 //画像の幅
$h = 20; height
$fontsize = 6; //フォントサイズ
$alpha = "abcdefghijkmnopqrstuvwxyz"; //検証コードの内容 1: 文字
$number = "023456789" //検証コードの内容 2: 数字
$randcode = ""; //検証用コード String 初期化
srand((double)microtime()*1000000); //乱数シードを初期化
$im = ImageCreate($w, $h); //検証用画像を作成
/*
* Frame
* /
$bgcolor = ImageColorAllocate($im, 255, 255, 255); //背景色を設定します
ImageFill($im, 0, 0, $bgcolor) //背景色を塗りつぶします
if($ border)
{
$black = ImageColorAllocate($im, 0, 0, 0); // 境界線の色を設定します
ImageRectangle($im, 0, 0, $w-1, $h-1, $black); //境界線を描画します
}
/*
* ランダムな文字を少しずつ生成します
*/
for($i=0; $i<$how; $i++)
{
$alpha_or_number = mt_rand(0, 1) ; //文字または数字
$​​ str = $alpha_or_number ? $alpha : $number;
$that = mt_rand(0, strlen($str)-1) // どの文字を取るか
$code = substr($str); , $that, 1); // 文字を取得
$j = !$i ? 4: $j+15; // 文字の位置を描画
$color3 = ImageColorAllocate($im, mt_rand(0,100), mt_rand(0,100) ), mt_rand(0,100)); //文字 次に color
ImageChar($im, $fontsize, $j, 3, $code, $color3); // 文字を描画します
$randcode .= $code;検証コード文字列を少しずつ
}
// 検証コード文字列をセッションに書き込みます
session_start();
$_SESSION['authnum_session'] = $randcode;
/*
* 干渉を追加します
*/
for($ i=0; $i<1; $i++) //背景の干渉線を描画します
$color1 = ImageColorAllocate($im, mt_rand(0,255), mt_rand(0,255));
ImageArc($im, mt_rand(-5,$ w), mt_rand(-5,$h), mt_rand(20,300), mt_rand(20,200), 55, 44, $color1) //干渉線
}
for ($i=0; $i<$how* 40; $i++)//背景干渉点を描画
{
$color2 = ImageColorAllocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); //干渉点カラー
ImageSetPixel($im, mt_rand (0,$w), mt_rand(0,$h), $color2); //干渉点
}
//画像の問題を防ぐためのキーコード独自のエラーのため表示できません'
ob_clean();
/*描画終了*/
Imagegif($im);
ImageDestroy($im);
/*描画終了*/


確認コードファイル sessionValidate.php を呼び出します

コードをコピーします コードは次のとおりです:

session_start();
//ページでは、まずセッションを開く必要があります
//error_reporting(2047);
session_destroy ();
//毎回新しいセッション値を取得できるようにセッションを削除します;
//seesion を使用するとうまく機能し、非常に便利です
?>




この例はセッション検証インスタンスです

検証コード: < input type="text" name="validate" value="" size=10>



//前のセッションを出力します;
echo "前のセッション:".$_SESSION["authnum_session"]."
";
$validate ="";
if(isset($_POST["validate"])){
$validate=$_POST["validate"];
echo "今入力した内容は次のとおりです: ".$_POST["validate"]。 "
ステータス: ";
if($validate!=$_SESSION["authnum_session"]){
//セッション値がユーザーが入力した検証コードと一致するかどうかを判断します;
echo "入力が正しくありません< /font>";
}else{
echo "確認済み";
}
}
/*
//すべてのセッションを印刷します;
PrintArr( $_SESSION);
function PrintArr($aArray){
echo '';<br>print_r($aArray);<br>echo '';
}
*/
?>

http://www.bkjia.com/PHPjc/328138.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/328138.html技術記事今日、コードを使用して PHP で検証コードを生成する機能を実装したところ、Firefox で「画像が...独自のエラーのため表示できません。」というメッセージが表示され続けることがわかりました。作者も「閲覧すると...」と注意しました。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート