`
txf2004
  • 浏览: 6832079 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

阅读更多

应用实例――图形验证码

下面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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics