PHPで画像認証コード機能を実現するクラス

PHPコード:

<?php
class Lib_Image
{
private $height = 0;
private $width = 0;

public function __construct($height , $width)
{
$this->height = $height;
$this->width = $width;
}

private function genCode($num)
{
for($i=0;$i<$num;$i++)//認証コードを生成
{
switch(rand(0,2))
{
case 0:$code[$i]=chr(rand(48,57));break;//数字
case 1:$code[$i]=chr(rand(65,90));break;//大文字
case 2:$code[$i]=chr(rand(97,122));break;//小文字
}
}
$_SESSION[“VerifyCode"]=$code;
return $code;
}

private function genOther($image)
{
for($i=0;$i<80;$i++)//干渉ピクセルを生成
{
$dis_color=imagecolorallocate($image,rand(0,2555),rand(0,255),rand(0,255));
imagesetpixel($image,rand(1,$this->width),rand(1,$this->height),$dis_color);
}
}

public function veryCode()
{

$image=imagecreate($this->width,$this->height);
imagecolorallocate($image,255,255,255);
//$this->genOther($image);

$num = 4;
$code = $this->genCode($num);
for($i=0;$i<$num;$i++)//画像への文字を印刷
{
$char_color=imagecolorallocate($image,rand(0,2555),rand(0,255),rand(0,255));
imagechar($image,60,($this->width/$num)*$i,rand(0,5),$code[$i],$char_color);
}

header(“Content-type:image/png");
imagepng($image);//ブラウザへイメージを出力
imagedestroy($image);//リソースを釈放
}
}

$image = new Lib_Image(25, 65);
$image->veryCode();
?>

PHP

Posted by arkgame