以下為引用的內容:
<?
Header("Content-type:image/png");
//定義header,聲明圖片文件,最好是png,無版權之擾;
//生成新的四位整數驗證碼
session_start();//開啟session;
authnum_session = '';
str = 'abcdefghijkmnpqrstuvwxyz1234567890';
//定義用來顯示在圖片上的數字和字母;
l = strlen(str); //得到字串的長度;
//循環隨機抽取四位前面定義的字母和數字;
for(i=1;i<=4;i )
{
num=rand(0,l-1);
//每次隨機抽取一位數字;從第一個字到該字串最大長度,
//減1是因為截取字符是從0開始起算;這樣34字符任意都有可能排在其中;
authnum_session.= str[num];
//將通過數字得來的字符連起來一共是四位;
}
session_register("authnum_session");
//用session來做驗證也不錯;注冊session,名稱為authnum_session,
//其它頁面只要包含了該圖片
//即可以通過_SESSION["authnum_session"]來調用
//生成驗證碼圖片,
srand((double)microtime()*1000000);
im = imagecreate(50,20);//圖片寬與高;
//主要用到黑白灰三種色;
black = ImageColorAllocate(im, 0,0,0);
white = ImageColorAllocate(im, 255,255,255);
gray = ImageColorAllocate(im, 200,200,200);
//將四位整數驗證碼繪入圖片
imagefill(im,68,30,gray);
//如不用干擾線,注釋就行了;
li = ImageColorAllocate(im, 220,220,220);
for(i=0;i<3;i )
{//加入3條干擾線;也可以不要;視情況而定,因為可能影響用戶輸入;
imageline(im,rand(0,30),rand(0,21),rand(20,40),rand(0,21),li);
}
//字符在圖片的位置;
imagestring(im, 5, 8, 2, authnum_session, white);
for(i=0;i<90;i )
{//加入干擾象素
imagesetpixel(im, rand()p , rand()0 , gray);
}
ImagePNG(im);
ImageDestroy(im);
?>
|