PHP代码:
复制代码代码如下所示:
< PHP
类captcha_code
{
VaR的宽度= 60美元;
变量$num = 4;
var $高度= 20;
var $name = 'randcode;
公共功能__construct($ conf = )
{
如果($ conf!
{
foreach($ conf键= >美元价值)
{
$ $ $;
}
}
}

功能说明()
{
页眉(内容类型:图像);
*
*初始化
* /
$边框= 0; /是否框1到0不:
$
$ = $-宽度;/图片宽度
$ = $ - >高度;
字体大小= 5美元; / /字体大小
为α=abcdefghijkmnopqrstuvwxyz ; / / 1:验证码的信
$ = 023456789; 2:数字内容验证代码
randcode美元= ; / /字符串初始化代码
Srand(瞬时)(双)(×1000000); / /初始化随机数种子

$我=画面欣赏($ W $ H); / /创建测试图像

*
*绘制基本框架
* /
背景颜色= imagecolorallocate美元(合我,255, 255, 255); / /设置背景颜色
imagefill($ IM,0, 0美元; / /背景色)填充背景色
如果($边界)
{
黑imagecolorallocate美元(合我,0, 0, 0); / /设置边框的颜色
ImageRectangle(合我,0, 0美元美元美元W-1,H-1,黑色); / /并条机
}

*
*逐位随机字符
* /
($ i = 0;$ i < $;如何;$ + +)
{
alpha_or_number美元= mt_rand(0, 1); / /字母或数字
$str =α:alpha_or_number美元美元美元数;
(0美元= mt_rand strlen(str)- 1); / /角色
为代码= substr($str,$,1); / /以人物
$ j=4!$ i:$ J +;15 /绘制字符位置
颜色= imagecolorallocate美元(合我,mt_rand(0100),mt_rand(0100)、(0100)mt_rand; / /)字符和颜色
(我imagechar美元美元美元,字体,J,3美元美元,代码颜色) / /图特征;
randcode美元=美元 / /位代码;添加验证代码的字符串
}

*
*添加干扰
* /
为了($ i = 0;$ i 5;;),绘制背景干扰线
{
彩色1美元= imagecolorallocate(合我,mt_rand(0255),mt_rand(0255)、(0255)mt_rand); / /干涉色线
imagearc(合我,mt_rand(5,$ W),mt_rand(5,$ H),mt_rand(20300),mt_rand(20200),55, 44美元; / / Color1)线干扰
}
对于($ i = 0;$ i 15;如何*);绘制背景干扰点
{
2美元= imagecolorallocate(合我,mt_rand(0255),mt_rand(0255)、(0255)mt_rand); / /干涉色
imagesetpixel(合我,mt_rand(0,$ W),mt_rand(0,$ H),2美元); / /干扰
}

验证代码字符串到会话

/ /美元->会话-> set_userdata(阵列(美元->名称= > randcode美元));

_session {美元美元->名称} = $ randcode;
绘图
imagegif(为我);
销毁一图像(为我);
绘图
}
}
>

调用PHP代码:
复制代码代码如下所示:
功能verify_image(){
$ conf { 'name' } = 'verify_code / /;配置参数
美元->荷载->图书馆('lib_captcha ',为机密);
这lib_captcha美元-> ->显示();
yzm_session美元=美元->会话->用户数据('verify_code);
echo $ yzm_session;
}

HTML代码:
复制代码代码如下所示:

验证码uff1a



换一个

验证码不正确



JS代码:
复制代码代码如下所示:

功能changecode(){
fs.query(# verify_code)。src= /用户/ verify_imager =+ Math.random();
}