ホームページ  >  記事  >  バックエンド開発  >  PHP検証コード画像が出力できない解決策_PHPチュートリアル

PHP検証コード画像が出力できない解決策_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:27:02773ブラウズ

PHP検証コード画像が出力できません

ファイル名 global_func.php

関数_code(){

//確認コードを実行する

//ランダムコードの数

$_rnd_code=4;

for($i=0;$i

$_nmsg.=dechex(mt_rand(0, 15));

}

//セッション中に保存

$_SESSION['code']=$_nmsg;

//長さと高さ

$_width=75;

$_height=25;

//画像を作成します

$_img=imagecreatetruecolor($_width,$_height);

//ホワイト

$_white=imagecolorallocate($_img, 255, 255, 255);

//詰め物

imagefill($_img, 0, 0, $_white);

$_flag=false;

if($_flag){

// 黒、ボーダー

$_black=imagecolorallocate($_img, 0,0,0);

imagerectangle($_img, 0,0, $_width-1,$_height-1,$_black);

}

//線を6本描く

for($i=0;$i

$_rnd_color=imagecolorallocate($_img, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));

imageline($_img,mt_rand(0,$_width),mt_rand(0,$_height),mt_rand(0,$_width),mt_rand(0,$_height), $_rnd_color);

}

//雪の結晶が続きます

for($i;$i

$_rnd_color=imagecolorallocate($_img,mt_rand(200,255), mt_rand(200,255), mt_rand(200,255));

imagestring($_img,1, mt_rand(1, $_width),mt_rand(1,$_height), '*', $_rnd_color);

}

//検証コードを出力する

for($i=0;$i

$_rnd_color=imagecolorallocate($_img, mt_rand(0, 100), mt_rand(0, 150), mt_rand(0, 200));

Imagestring($_img,5,$i*$_width/$_rnd_code+mt_rand(1,10), mt_rand(1,$_height/2),$_SESSION['code'][$i],$_rnd_color);

}

//出力画像

header('Content-Type:image/png');

imagepng($_img);

//破壊

imagedestroy($_img);

}

global_func.php ファイル内で function _code(); を呼び出すと、エラーが表示され、赤いバツが表示されます。

code.php

_code();

code.phpに直接書いて使えます。

code.php

//ランダムコードの数

$_rnd_code=4;

for($i=0;$i

$_nmsg.=dechex(mt_rand(0, 15));

}

//セッション中に保存

$_SESSION['code']=$_nmsg;

//長さと高さ

$_width=75;

$_height=25;

//画像を作成します

$_img=imagecreatetruecolor($_width,$_height);

//ホワイト

$_white=imagecolorallocate($_img, 255, 255, 255);

//塗りつぶし

imagefill($_img, 0, 0, $_white);

$_flag=false;

if($_flag){

// 黒、ボーダー

$_black=imagecolorallocate($_img, 0,0,0);

imagerectangle($_img, 0,0, $_width-1,$_height-1,$_black);

}

//線を6本描く

for($i=0;$i

$_rnd_color=imagecolorallocate($_img, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));

imageline($_img,mt_rand(0,$_width),mt_rand(0,$_height),mt_rand(0,$_width),mt_rand(0,$_height), $_rnd_color);

}

//雪の結晶が続きます

for($i;$i

$_rnd_color=imagecolorallocate($_img,mt_rand(200,255), mt_rand(200,255), mt_rand(200,255));

imagestring($_img,1, mt_rand(1, $_width),mt_rand(1,$_height), '*', $_rnd_color);

}

//検証コードを出力する

for($i=0;$i

$_rnd_color=imagecolorallocate($_img, mt_rand(0, 100), mt_rand(0, 150), mt_rand(0, 200));

Imagestring($_img,5,$i*$_width/$_rnd_code+mt_rand(1,10), mt_rand(1,$_height/2),$_SESSION['code'][$i],$_rnd_color);

}

//出力画像

header('Content-Type:image/png');

imagepng($_img);

//破壊

imagedestroy($_img);

この検証コードを関数にカプセル化せずに直接実行すると、検証コードを使用でき、すべてが正常に動作します。

しかし、関数_code()を使用すると、_code()を呼び出した後のHTMLに赤いバツが表示されます。理由はわかりません

------解決策---------------------

header('Content-Type:image/png') のせいでしょうか

BOM ヘッダーは、ブラウザーが期待するファイル タイプに影響します

------解決策---------------------

関数として書いても呼び出して問題ありません。

関数_code(){

//確認コードを実行する

}

?>

別のページ

include("./test/test.php");

_code();

------解決策---------------------

phpのエラーメッセージを開けば原因が分かります

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/820426.html技術記事 PHP 検証コード イメージはファイル名を出力できません global_func.php function _code(){ //検証コードを実行//ランダム コードの数 $_rnd_code=4; for($i=0;$i$_rnd_code;$i++){ $_nmsg .=dechex(mt_rand(0,...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。