ホームページ >バックエンド開発 >PHPチュートリアル >PHP は検証コードを動的にランダムに生成します code_PHP チュートリアル

PHP は検証コードを動的にランダムに生成します code_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:39:27945ブラウズ

以下は、干渉なしのレンダリングです。 コードは次のとおりです。
PHP は検証コードを動的にランダムに生成します code_PHP チュートリアル
/************************************************
//ファイル:ImageCode
//DONE: 動的検証コード クラスの生成

//DATE"2010-3-31 //著者:www.5dkx.com 5D Happy Blog************** **** ********************************************* ***** ******** / class ImageCode{ private $width; //認証コード画像の幅
private $height; //認証コードの文字数
private $checkCode; //認証コードの文字数
; //検証コードキャンバス
/*************************************************** * ********************
// 関数: コンストラクター
// 完了: メンバー属性の初期化
// 著者: www.5dkx.com 5D Happy Blog
* ************************************************* * **********************/
function __construct($width=60,$height=20,$codeNum=4)
{
$this->width = $width; ->高さ = $height;
$this->codeNum = $codeNum;
$this->createCheckCode();
関数 showImage()
$ this-> ;getcreateImage();
$this->setDisturbColor();
関数 getCheckCode()
{
return $this-> ;chekCode;
}
プライベート関数 getCreateImage()
{
$this->image = imagecreatetruecolor($this->width,$this->height);
$back = imagecolorallocate($this->image) ,255,255,255);
$border = imagecolorallocate($this->image,255,255,255);
imagefilledrectangle($this->image,0,0,$this->width-1,$this->height- 1,$border);
//四角形の枠を真っ白で塗りつぶすと、その後の干渉コードが無効になります
/*干渉コードを使用したい場合は以下を使用してください*/
//imagerectangle( $this->image,0,0,$this->width-1,$this->height-1,$border);
プライベート関数 createCheckCode()
{
for($i=0) ;$i{
$number = rand(0,2)
switch($number)
{
case 0: $rand_number = rand(48,57); ;//数値
ケース 1: $rand_number = rand(65,90);break;//大文字
ケース 2: $rand_number = rand(97,122);break;//小文字
}
$asc = sprintf( "%c", $rand_number);
$asc_number = $asc_number.$asc;
return $asc_number;
プライベート関数 setDisturbColor()//干渉設定
for($i=0;$i< ;=100; $i++)
{
//$color = imagecolorallocate($this->image,rand(0,255),rand(0,255)); ;image,255,255,255 );
imagesetpixel($this->image,rand(1,$this->width-2),rand(1,$this->height-2),$color);
//$ color = imagecolorallocate($this->image,0,0,0);
//imagesetpixel($this->image,rand(1,$this->width-2),rand( 1,$this ->height-2),$color);
}
プライベート関数 OutputText()
{
//ランダムな色、ランダムな配置、ランダムな文字列を画像に出力
for($i=0;$ i<= $this->codeNum;$i++)
{
$bg_color = imagecolorallocate($this->image,rand(0,255),rand(0,128),rand(0,255)); $this->width/$this->codeNum)*$i+3;
$y = rand(0,$this->height-15);
imagechar($this->image,5, $x, $y,$this->checkCode[$i],$bg_color);
}
}
プライベート関数 OutputImage()
{
if(imagetypes()&IMG_GIF)
{
header("Content_type:image /gif" );
imagegif($this->image);
}
elseif(imagetypes()&IMG_JPG)
{
header("Content-type:image/jpeg");
imagejpeg($this->画像," ",0.5);
elseif(imagetypes()&IMG_PNG)
header("Content-type:image/png");
elseif( imagetypes() &IMG_WBMP)
{
header("Content-type:image/vnd.wap.wbmp");
imagejpeg($this->image);
}
else
{
die("PHP はサポートしていません)画像作成") ;
}
}
function __destruct()
{
imagedestroy($this->image);
}
}
/*display*/
/*************************************************** ***************
session_start();
$image = 新しい画像コード(60,20,4);
$image->showImage();
$_SESSION['ImageCode'] = $image->getCheckCode();
************************************************ ******************/
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/321592.html技術記事以下はレンダリングです。このレンダリングは干渉なしのコードです。次のコードをコピーします。 ?php /****************** ***** **************************** //FILE:...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。