コードは次のとおりです:
/* ウェブサイト認証コード プログラム
* * 動作環境:PHP5.0.18でデバッグパス済み
* * gd2 グラフィックス ライブラリのサポートが必要です (PHP.INI の php_gd2.dll がオンになっています)
* ファイル名:showimg.php
* * 著者: 17php.com
* * 日付: 2007.03
*/
// 4桁の確認コードをランダムに生成します
$num="";
for($i=0;$i<4;$i++){
$num .= rand(0,9);
}
//rand(1000,9999) を使用して 4 桁の確認コードを直接生成することもできます
// 生成された検証コードをセッションに書き込み、検証ページで使用します
Session_start();
$_SESSION["Checknum"] = $num;
//画像を作成し、色の値を定義します
Header("コンテンツタイプ: 画像/PNG");
srand((double)microtime()*1000000);
$im = imagecreate(60,20);
$black = ImageColorAllocate($im, 0,0,0);
$gray = ImageColorAllocate($im, 200,200,200);
Imagefill($im,0,0,$gray);
//干渉として機能する 2 本の点線をランダムに描画します
$style = array($black, $black, $black, $black, $black, $gray, $gray, $gray, $gray, $gray);
imagesetstyle($im, $style);
$y1=rand(0,20);
$y2=ランド(0,20);
$y3=ランド(0,20);
$y4=ランド(0,20);
イメージライン($im, 0, $y1, 60, $y3, IMG_COLOR_STYLED);
イメージライン($im, 0, $y2, 60, $y4, IMG_COLOR_STYLED);
// キャンバス上に多数の黒い点をランダムに生成して妨害します
for($i=0;$i<80;$i++)
{
imagesetpixel($im, rand(0,60), rand(0,20), $black);
}
//キャンバス上に4つの数字をランダムに表示し、文字の横方向の間隔と位置は一定の変動幅に従ってランダムに生成されます
$strx=rand(3,8);
for($i=0;$i<4;$i++){
$strpos=rand(1,6);
画像文字列($im,5,$strx,$strpos, substr($num,$i,1), $black);
$strx+=rand(8,12);
}
画像PNG($im);
ImageDestroy($im);
?>
|