使用PHP制作一个验证码
2017-06-05 22:46
218 查看
* 验证码
* @param int $type 验证码类型 1纯数字 2小写字母 3大写字母 4 大小写字母混合 5 数字和字母混合
* @param int $length 验证码长度
* @param int $width 验证码图像宽度
* @param int $height 验证码图像高度
*/
function verifyCode($type=1,$length=4,$width=100,$height=40){
//第一步:创建画布,获取图像资源
$img=imagecreatetruecolor($width,$height);
//第二步:操作图像资源
//分配背景色
$backColor=imagecolorallocate($img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
//填充背景颜色
imagefill($img,0,0,$backColor);
//随机生成字符串
$str=getRandStr($type,$length);
//将产生的随机字符串存入session
$_SESSION['yh_verify']=$str;
//分配文字颜色
$fontColor=imagecolorallocate($img,mt_rand(0,100),mt_rand(0,100),mt_rand(0,100));
//准备字体
$fonts=array('msyh.ttf','msyhbd.ttf','simhei.ttf');
$font='fonts/'.$fonts[array_rand($fonts)];
//写入字符串
imagettftext($img,mt_rand(20,25),mt_rand(-10,10),mt_rand(5,10),mt_rand(25,30),$fontColor,$font,$str);
//写点干扰项
for($i=1;$i<=500;$i++){
imagesetpixel($img,mt_rand(0,$width),mt_rand(0,$height),imagecolorallocate($img,mt_rand(50,150),mt_rand(50,150),mt_rand(50,150)));
}
//写线干扰项
for($n=1;$n<=20;$n++){
$x=mt_rand(0,$width);
$y=mt_rand(0,$height);
imageline($img,$x,$y,$x+rand(-50,50),$y+rand(-50,50),imagecolorallocate($img,mt_rand(50,150),mt_rand(50,150),mt_rand(50,150)));
}
//第三步:输出图像
header('Content-type:image/png');
imagepng($img);
//第四步:销毁图像资源,释放内存
imagedestroy($img);
}
* @param int $type 验证码类型 1纯数字 2小写字母 3大写字母 4 大小写字母混合 5 数字和字母混合
* @param int $length 验证码长度
* @param int $width 验证码图像宽度
* @param int $height 验证码图像高度
*/
function verifyCode($type=1,$length=4,$width=100,$height=40){
//第一步:创建画布,获取图像资源
$img=imagecreatetruecolor($width,$height);
//第二步:操作图像资源
//分配背景色
$backColor=imagecolorallocate($img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
//填充背景颜色
imagefill($img,0,0,$backColor);
//随机生成字符串
$str=getRandStr($type,$length);
//将产生的随机字符串存入session
$_SESSION['yh_verify']=$str;
//分配文字颜色
$fontColor=imagecolorallocate($img,mt_rand(0,100),mt_rand(0,100),mt_rand(0,100));
//准备字体
$fonts=array('msyh.ttf','msyhbd.ttf','simhei.ttf');
$font='fonts/'.$fonts[array_rand($fonts)];
//写入字符串
imagettftext($img,mt_rand(20,25),mt_rand(-10,10),mt_rand(5,10),mt_rand(25,30),$fontColor,$font,$str);
//写点干扰项
for($i=1;$i<=500;$i++){
imagesetpixel($img,mt_rand(0,$width),mt_rand(0,$height),imagecolorallocate($img,mt_rand(50,150),mt_rand(50,150),mt_rand(50,150)));
}
//写线干扰项
for($n=1;$n<=20;$n++){
$x=mt_rand(0,$width);
$y=mt_rand(0,$height);
imageline($img,$x,$y,$x+rand(-50,50),$y+rand(-50,50),imagecolorallocate($img,mt_rand(50,150),mt_rand(50,150),mt_rand(50,150)));
}
//第三步:输出图像
header('Content-type:image/png');
imagepng($img);
//第四步:销毁图像资源,释放内存
imagedestroy($img);
}
相关文章推荐
- PHP学习笔记之使用GD库制作验证码(一)
- 使用PHP制作一个万年历
- 使用php制作验证码技术
- 使用php制作验证码
- PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
- php使用GD库制作验证码,点击验证码或看不清会刷新验证码
- 使用PHP制作验证码
- asp.net开发中经常使用到的一个验证码(实用)
- 验证码的制作和使用(ASP)
- 验证码的制作和使用(ASP)
- 一分钟学会使用PHP生成网页验证码
- 验证码的制作和使用(ASP)
- 验证码的制作和使用(ASP)
- 使用jsf + hibernate制作一个login实例教学录像
- 使用Dundas Chart控件制作一个模拟的逼真图
- 使用PHP制作新闻系统的思路
- IIS中使用PHP的SESSION的一个奇怪现象
- 验证码的制作和使用(ASP)
- 验证码的制作和使用(ASP)