关于PHP里面复杂的验证码的制作
2012-03-06 10:26
232 查看
为了防止暴力破解,基本上每个网站的登陆验证都离不开验证码,下面将以通俗易懂的方式给出在PHP中如何应用GD库制作复杂的验证码,闲话少说,直接看代码:
<?php
//首先建立一个产生随即字符串的函数
function randstr($length){
$result="";
$string="^&*()";
//做循环
for ($i=0;$i<$length;$i++){
$result.=$string[mt_rand(0,strlen($string)-1)];
}
return $result;
}
//输出到浏览器
header("content-type:image/png");
//初始化图像的长和宽
$image_x=80;
$image_y=30;
//创建图片
$image=imagecreate($image_x,$image_y);
//定义背景色
$background_color=imagecolorallocate($image,0xff,0xff,0xff);
//定义所需要的颜色
$black_color=imagecolorallocate($image,0x00,0x00,0x00);
$gray_color=imagecolorallocate($image,0xcc,0xcc,0xcc);
//生成干扰像素
for ($i=0;$i<1000;$i++){
imagesetpixel($image,mt_rand(0,$image_x),mt_rand(0,$image_y),$gray_color);
}
//把随机字符串输入图片
$str=randstr(4);
$x=5;
for ($i=0;$i<strlen($str);$i++){
imagechar($image,5,$x,$y,substr($str,$i,1),$black_color);
//设定验证字符的偏移量
$x+=18;
$y=rand(1,15);
}
//生成矩形边框
imagerectangle($image,0,0,$image_x-1,$image_y-1,$black_color);
//输出图片
imagepng($image);
//最后释放资源
imagedestroy($image);
?>
这是一段产生标准的4位验证码的代码,说一下其中各个变量的意义以便于大家修改:
$image_x:图片的宽
$image_y:图片的高
根据你要产生的验证的位数,可以自行去调整
$baclground_color:背景色
$black_color:验证码字体颜色和图片边框的颜色
$gray_color:干扰的颜色
根据需要自行去调整
$x:验证码字符之间的间距
$y:验证码字符上下的偏移量
这两个变量的初值和偏移量根据图片的宽和高适当的去调整
以上就是在PHP中制作复杂的验证码的全过程,觉得实用的话帮忙踩一下,谢谢支持!
<?php
//首先建立一个产生随即字符串的函数
function randstr($length){
$result="";
$string="^&*()";
//做循环
for ($i=0;$i<$length;$i++){
$result.=$string[mt_rand(0,strlen($string)-1)];
}
return $result;
}
//输出到浏览器
header("content-type:image/png");
//初始化图像的长和宽
$image_x=80;
$image_y=30;
//创建图片
$image=imagecreate($image_x,$image_y);
//定义背景色
$background_color=imagecolorallocate($image,0xff,0xff,0xff);
//定义所需要的颜色
$black_color=imagecolorallocate($image,0x00,0x00,0x00);
$gray_color=imagecolorallocate($image,0xcc,0xcc,0xcc);
//生成干扰像素
for ($i=0;$i<1000;$i++){
imagesetpixel($image,mt_rand(0,$image_x),mt_rand(0,$image_y),$gray_color);
}
//把随机字符串输入图片
$str=randstr(4);
$x=5;
for ($i=0;$i<strlen($str);$i++){
imagechar($image,5,$x,$y,substr($str,$i,1),$black_color);
//设定验证字符的偏移量
$x+=18;
$y=rand(1,15);
}
//生成矩形边框
imagerectangle($image,0,0,$image_x-1,$image_y-1,$black_color);
//输出图片
imagepng($image);
//最后释放资源
imagedestroy($image);
?>
这是一段产生标准的4位验证码的代码,说一下其中各个变量的意义以便于大家修改:
$image_x:图片的宽
$image_y:图片的高
根据你要产生的验证的位数,可以自行去调整
$baclground_color:背景色
$black_color:验证码字体颜色和图片边框的颜色
$gray_color:干扰的颜色
根据需要自行去调整
$x:验证码字符之间的间距
$y:验证码字符上下的偏移量
这两个变量的初值和偏移量根据图片的宽和高适当的去调整
以上就是在PHP中制作复杂的验证码的全过程,觉得实用的话帮忙踩一下,谢谢支持!
相关文章推荐
- 关于用PHP实现验证码制作的学习记录
- PHP制作验证码
- php验证码的制作
- php制作简单验证码
- PHP制作验证码
- php 验证码制作(网树注释思想)
- PHP学习笔记之使用GD库制作验证码(一)
- PHP制作数字、字母型验证码及其工作原理剖析
- 关于在apache里面给php写虚拟目录的问题详细方法
- 我的php学习笔记(三十一)PHP5中图片验证码的制作(下)
- php验证码制作
- 如何用php制作验证码
- 关于在apache里面给php写虚拟目录的问题详细方法
- php制作验证码
- 关于php里面的mysql client API version版本更新
- 关于PHP使用GD库生成的验证码无法在别处显示
- php使用GD库制作验证码,点击验证码或看不清会刷新验证码
- 关于PHP增删改查里面遇到的Mysql数组调用值为null的问题
- PHP制作验证码
- php验证码的制作