命名空間移動\組件;
/**
* @作者霍峰
*
*修改了加減驗證類
*使用示例verify code::get(1,2);
*驗證示例verify code::check($ code);
*/
類別驗證碼
{
/**
* php驗證碼
*/
公共靜態函數get($ one,$two,$ prefix =‘‘,$font_size = 28)
{
//文件頭...
ob _ get _ clean();
header(“Content-type:image/png;charset = utf-8;”);
//創建真彩色白紙
$ width = $ font _ size * 5;
$ height = $ font _ size+1;
$ im = @ image create true color($ width,$ height)或die(“圖像創建失敗“);
//獲取背景顏色
$ background _ color = imagecolorrallocate($ im,255,255,255);
//填充背景顏色
image fill(im,0,0,$ background _ color);
//獲取邊框顏色
$ border _ color = imagecolorrallocate($ im,200,200,200);
//繪制壹個邊框顏色為200,200,200的矩形。
image rectangle($ im,0,0,$width - 1,$height - 1,$ border _ color);
//逐行顯示背景,全屏使用1或0。
for($ I = 2;$ i & lt$ height-2;$ i++){
//獲取隨機色調
$ line _ color = imagecolorrallocate($ im,rand(200,255),rand(200,255),rand(200,255));
//畫壹條線
imageline($ im,2,$i,$width - 1,$i,$ line _ color);
}
//設置打印文本。
$ firstNum = $ one
$ secondNum = $ two
$ actionStr = $ firstNum & gt$secondNum?'-' : '+';
//獲取第1個隨機字符。
$ imstr【0】【“s“】= $ first num;
$ imstr【0】【“x“】= rand(2,5);
$ imstr【0】【“y“】= rand(1,4);
//獲取第二個隨機單詞
$ imstr【1】【“s“】= $ actionStr;
$ imstr【1】【“x“】= $ imstr【0】【“x“】+$ font _ size-1+rand(0,1);
$ imstr【1】【“y“】= rand(1,5);
//獲取第三個隨機字
$ imstr【2】【“s“】= $ second num;
$ imstr【2】【“x“】= $ imstr【1】【“x“】+$ font _ size-1+rand(0,1);
$ imstr【2】【“y“】= rand(1,5);
//獲取第三個隨機字
$ imstr【3】【“s“】=‘=‘;
$ imstr【3】【“x“】= $ imstr【2】【“x“】+$ font _ size-1+rand(0,1);
$ imstr【3】【“y“】= 3;
//獲取第三個隨機字
$ imstr【4】【“s“】=‘?‘。;
$ imstr【4】【“x“】= $ imstr【3】【“x“】+$ font _ size-1+rand(0,1);
$ imstr【4】【“y“】= 3;
//文本
$ text =““;
//寫入隨機字符串
for($ I = 0;$ i & lt5;$ i++){
//獲取隨機的深色
$ text _ color = imagecolorrallocate($ im,rand(50,180),rand(50,180),rand(50,180));
$文本。= $ imstr【$ I】【“s“】;
//繪制單詞
imagechar($ im,$font_size,$ imstr【$ I】【“x“】,$ imstr【$ I】【“y“】,$ imstr【$ I】【“s“】,$ text _ color);
}
session _ start();
$ _ SESSION【$前綴。verify code‘】= $ first num & gt;$secondNum?($ first num-$ second num):($ first num+$ second num);
//顯示圖片
ImagePng($ im);
//毀圖
image destroy($ im);
}
公共靜態函數檢查($code)
{
if(trim($ _ SESSION【$ prefix。verify code‘】)= = trim($ code)){
返回true
}否則{
返回false
}
}