流程:
1.随机出一个4位的随机数存到sessioon中
2.设置图片长和宽
3.创建图像
4.设置背景
5.将随机数写入图片
6.加入干扰素(在图片上随机打印N个 点)
7.给图片家边框
8.输出图片
//之后就是把用户输入的验证码数字跟 $_SESSION['login_validate'] 变量做比较就ok了
[php]<?php
session_start();
//设置随机数种子
srand((double)microtime()*1000000);
//随机出4个数字
for($i=0;$i<4;$i++){
$mun.= mt_rand(0,9);
}
$_SESSION['login_validate'] = $mun;
$img_height=60; //先定义图片的长、宽
$img_width=20;
$img = imagecreate($img_height,$img_width);//创建图像
ImageColorAllocate($img, 255,255,255);//设置图像背景
$color_rand = ImageColorAllocate($img, mt_rand(0,100),mt_rand(0,100),mt_rand(0,100));
imagestring($img, 5, 12, 2, $_SESSION['login_validate'],$color_rand); //验证数字嵌入图片
for($i=0;$i<100;$i++) //加入干扰象素
{
imagesetpixel($img, mt_rand(1,$img_height-1), mt_rand(1,$img_width-1), ImageColorAllocate($img, mt_rand(150,250),mt_rand(150,250),mt_rand(100,250)));
}
//画上边框
ImageRectangle($img,0,0,$img_height-1,$img_width-1,ImageColorAllocate($img,mt_rand(0,100),mt_rand(0,100),mt_rand(0,100)));
Header("Content-type: image/png"); //告诉浏览器,下面的数据是图片,而不要按文字显示
//生成png格式
ImagePNG($img);
ImageDestroy($img);
?>
[/php]
1.随机出一个4位的随机数存到sessioon中
2.设置图片长和宽
3.创建图像
4.设置背景
5.将随机数写入图片
6.加入干扰素(在图片上随机打印N个 点)
7.给图片家边框
8.输出图片
//之后就是把用户输入的验证码数字跟 $_SESSION['login_validate'] 变量做比较就ok了
[php]<?php
session_start();
//设置随机数种子
srand((double)microtime()*1000000);
//随机出4个数字
for($i=0;$i<4;$i++){
$mun.= mt_rand(0,9);
}
$_SESSION['login_validate'] = $mun;
$img_height=60; //先定义图片的长、宽
$img_width=20;
$img = imagecreate($img_height,$img_width);//创建图像
ImageColorAllocate($img, 255,255,255);//设置图像背景
$color_rand = ImageColorAllocate($img, mt_rand(0,100),mt_rand(0,100),mt_rand(0,100));
imagestring($img, 5, 12, 2, $_SESSION['login_validate'],$color_rand); //验证数字嵌入图片
for($i=0;$i<100;$i++) //加入干扰象素
{
imagesetpixel($img, mt_rand(1,$img_height-1), mt_rand(1,$img_width-1), ImageColorAllocate($img, mt_rand(150,250),mt_rand(150,250),mt_rand(100,250)));
}
//画上边框
ImageRectangle($img,0,0,$img_height-1,$img_width-1,ImageColorAllocate($img,mt_rand(0,100),mt_rand(0,100),mt_rand(0,100)));
Header("Content-type: image/png"); //告诉浏览器,下面的数据是图片,而不要按文字显示
//生成png格式
ImagePNG($img);
ImageDestroy($img);
?>
[/php]