PEAR探奇系列之PEAR::Text_Password[五]--实例:图形验证码 [END]

本文给出一个PHP实现图形验证码的应用实例,采用随机背景图并写上随机字符串。代码仅二十多行,功能强大、安全性较高,还可加入杂点、画线等。可在网页引用该验证码,配合Session进行认证,不熟悉图像函数可查阅PHP手册。

应用实例――图形验证码

下面Haohappy将给出一个应用实例,那就是大家都非常熟悉的图形验证码。虽然只是一个简单的例子,却是一个完整的验证码程序的核心部份。思路是采用随机的背景图,再用不同的颜色写上随机字符串。

首先,我们准备三个图形背景文件,分别命名为bg1.png,bg2.png,bg3.png,放在images目录下。

代码如下:

ImageCode.php

<?php

require_once "Text/Password.php";
$string = Text_Password::create(10, 'pronounceable');


$num = rand(1,3);

header("Content-type: image/png");
$im= imagecreatefrompng("images/bg$num.png");

switch ($num) {
case 1:
$orange = imagecolorallocate($im, 253, 238, 227); //字体颜色
break;
case 2:
$orange = imagecolorallocate($im, 255, 204, 51);
break;
case 3:
$orange = imagecolorallocate($im, 255,255,200);
break;
}

$px= (imagesx($im) - 7.5 * strlen($string)) / 2; //位置
imagestring($im, 5, $px-3, 2, $string, $orange); //写上随机字符串
imagepng($im);
imagedestroy($im);
?>

运行结果如下:

左图为随机码类型pronounceable,右图为unpronounceable

使用Text_Password的好处就在这里,可以非常方便地使用你想要的随机码类型。

程序非常简单,只有二十多行,但功能算是相当强大,想使用程序进行边缘识别不那么容易,安全性较高。

至少比腾讯网站上QQ免费注册的那个验证码强多了:) 当然你也可以再加入随机杂点,画线,使用随机字体,颜色,旋转等等(如果有必要的话)。你可以在网页中加入<IMAGE SRC='imagetest2.php'>来引用该验证码,配合Session,就可以在用户登录时进行图形验证码认证。具体不详述,没什么难度。

如果对几个图像函数不熟悉,请自行查阅PHP手册。

参考资料:

End-user Documentation and API documentation of PEAR::Text_Password

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值