我们看到的验证码是这样生成的
2014-05-13 16:08
337 查看
<?php
//产生验证码的4位随机数
session_start();
$arr = ['a','b','c','d','e','f','g','h','i','k','l','m',
'n','o','p','q','r','s','t','u','v','w','x','y',
'z','0','1','2','3','4','5','6','7','8','9'];
$rand = "";
for($i=1;$i<=4;$i++){
$rand .= $arr[rand(0,count($arr)-1)];
}
//把生成的随机数装在session中
$_SESSION['pic']=$rand;
//1.生成图片
$im = imagecreatetruecolor(100,30);
//2.生成颜色,第一次调用,生成背景颜色,默认是黑色
//自定义背景颜色,用imageFill函数
$bg = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
//2,3,2:颜色(三原色:红,绿,蓝)
imagefill($im,0,0,$bg);
//imagefill的颜色是由上面的颜色变化而来的
//3.第二次调用,生成图片上面的文字或其他样式的颜色
//$te = imagecolorallocate($im,255,233,233);
$te = imagecolorallocate($im,rand(0,244),rand(6,233),rand(10,100));
//生成干扰线
//imageline($im,0,0,0,0,$te);
$poslineX1 = rand(6,30);
$poslineX2 = rand(30,60);
for($i=0;$i<5;$i++){
$poslineY1 = rand(2,18);
$poslineY2 = rand(11,25);
imageline($im,$poslineX1,$poslineY1,$poslineX2,$poslineY2,$te);
$poslineX1 = rand(30,60);
$poslineX2 = rand(50,80);
}
//生成干扰点
for($i=0;$i<90;$i++){
$te3 = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im,rand(2,100),rand(2,30),$te3); }
//4.在图片上面生成文字
//imagestring($im,rand(1,5),rand(18,60),rand(5,15),$rand,$te);
$postX = rand(6,45);
for($i=0;$i<4;$i++){
$postY = rand(8,15);
imagestring($im,rand(3,5),$postX,$postY,substr($rand,$i,1),$te);
$postX +=rand(8,20);
}
//rand(1,5):代表字体大小
//rand(18,60):代表宽度的随机数
//rand(5,15):代表高度的随机数
//$rand:随机生成的4位验证码
//$te:验证码字体的样式,颜色
//5.php当图片输出,声明
header("content-type:image/jpeg");
//6.显示
imagejpeg($im);
?>
//产生验证码的4位随机数
session_start();
$arr = ['a','b','c','d','e','f','g','h','i','k','l','m',
'n','o','p','q','r','s','t','u','v','w','x','y',
'z','0','1','2','3','4','5','6','7','8','9'];
$rand = "";
for($i=1;$i<=4;$i++){
$rand .= $arr[rand(0,count($arr)-1)];
}
//把生成的随机数装在session中
$_SESSION['pic']=$rand;
//1.生成图片
$im = imagecreatetruecolor(100,30);
//2.生成颜色,第一次调用,生成背景颜色,默认是黑色
//自定义背景颜色,用imageFill函数
$bg = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
//2,3,2:颜色(三原色:红,绿,蓝)
imagefill($im,0,0,$bg);
//imagefill的颜色是由上面的颜色变化而来的
//3.第二次调用,生成图片上面的文字或其他样式的颜色
//$te = imagecolorallocate($im,255,233,233);
$te = imagecolorallocate($im,rand(0,244),rand(6,233),rand(10,100));
//生成干扰线
//imageline($im,0,0,0,0,$te);
$poslineX1 = rand(6,30);
$poslineX2 = rand(30,60);
for($i=0;$i<5;$i++){
$poslineY1 = rand(2,18);
$poslineY2 = rand(11,25);
imageline($im,$poslineX1,$poslineY1,$poslineX2,$poslineY2,$te);
$poslineX1 = rand(30,60);
$poslineX2 = rand(50,80);
}
//生成干扰点
for($i=0;$i<90;$i++){
$te3 = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im,rand(2,100),rand(2,30),$te3); }
//4.在图片上面生成文字
//imagestring($im,rand(1,5),rand(18,60),rand(5,15),$rand,$te);
$postX = rand(6,45);
for($i=0;$i<4;$i++){
$postY = rand(8,15);
imagestring($im,rand(3,5),$postX,$postY,substr($rand,$i,1),$te);
$postX +=rand(8,20);
}
//rand(1,5):代表字体大小
//rand(18,60):代表宽度的随机数
//rand(5,15):代表高度的随机数
//$rand:随机生成的4位验证码
//$te:验证码字体的样式,颜色
//5.php当图片输出,声明
header("content-type:image/jpeg");
//6.显示
imagejpeg($im);
?>
相关文章推荐
- 看到这样一段视频,就在我们奎文区,我还真没听说过
- PHP生成图形验证码
- 没有wifi的童年,我们是这样过的
- asp.net(C#) 生成随机验证码
- ASP.NET用一般处理程序生成验证码
- asp.net生成验证码,通过session验证
- java生成随机验证码(ASCII)
- 生成n位不同的验证码
- 随机生成六位数验证码
- 理解C#生成验证码的过程
- Java验证码生成
- patchca生成超炫的验证码
- Web开发中的验证码图片的生成-基于Java的实现
- {看到一篇贴}主题:Fortran 生成的DLL中为何allocate用不了?
- 使用jsp生成彩色汉字验证码
- thinkphp生成的验证码不显示问题解决
- PHP生成带有雪花背景的验证码
- 动态生成验证码用于ASP.NET登录或注册模块中
- ASP.NET 生成随机验证码
- Java生成验证码并进行验证(转)