ホームページ >php教程 >php手册 >PHP画像検証コードクラス

PHP画像検証コードクラス

WBOY
WBOYオリジナル
2016-06-21 09:05:191054ブラウズ

验证码


class validateImage
{

var $x;
var $y;
var $numChars;
var $Code;
var $Width;
var $Height;
var $BG;
var $colTxt;
var $colBorder;
var $numCirculos;

//构造関数数、初值
function validateImage()
{
$this->x = $x;
$this->y = $y = "6" ;
$this->numChars = $numChars = "4"; //コードの数
$this->Code = $Code;
$this->Width = $Width = "80"; //画像の幅
$this->高さ = $Height = "25"; //画像の高さ
$this->BG = $BG = "255 255 255"; //背景のRG​​B色
$this->colTxt = $colTxt = "0 0 0 0"; //コードのRGB色
$this->Border = $colBorder = "100 100 100"; //枠線のRGB色
$this->numCirculos = $numCirculos = "800"; //ランダムな点の数
}

//ベース画像を作成
function createImage()
{
//画像を作成
$im = imagecreate ($this->Width, $this->Height) or die ("新しい GD イメージ ストリームを初期化できません");

//RGB カラー コードを取得します
$colorBG =explode(" ", $this->BG);

$colorBorder =explode(" ", $this- >Border);

$colorTxt =explode(" ", $this->colTxt);

//画像に背景色を置きます
$imBG = imagecolorallocate ($im, $colorBG[0], $ colorBG[1], $colorBG[2]);

//画像に境界線を置きます
$Border = ImageColorAllocate($im, $colorBorder[0], $colorBorder[1], $colorBorder[2]);
$imBorder = ImageRectangle($im, 0, 0, $this->Width-1,$this->Height-1, $Border);

//画像にコードカラーを配置します
$imTxt = imagecolorallocate ($im, $colorTxt[0], $colorTxt[1], $colorTxt[2]);

//800 ポイントをドロップ
for($i = 0; $i numCirculos; $i++)
{
$imPoints = imagesetpixel($im, mt_rand(0,80), mt_rand(0,80), $Border);
}

//image にコードを配置します
for($i = 0 ; $i < $this->numChars; $i++)
{
//$x の位置を取得
$this->x = 21 * $i + 5;

//コードを取得
double) microtime() * 1000000*getmypid());
$this->Code.= (mt_rand(0, 9));

$putCode = substr($this->Code, $i, "1 ");

//コードを入力します;
$Code = imagestring($im, 5, $this->x, $this->y, $putCode,$imTxt);

}

return $ im;

}


//コードを次のページに転送
function transferCode()
{
//コードを取得
$this->createImage();
$vCode = $this->Code;

session_start();
session_register(vCode);

$_SESSION['validate_code'] = $vCode;

return $vCode;
}


//画像を表示
function show()
{
header ("Content-type:image/png");
Imagepng($this->createImage());
Imagedestroy($this->createImage());
}

}
?>



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。