应用实例――图形验证码
下面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
分享到:
相关推荐
精彩内容: PHP5面向对象程序设计系列 PEAR探奇系列之PEAR::Text_Password PEAR::PEAR的析构器模拟 Smarty中section的简单使用 Xmlhttp使用手记
:kiwi_fruit: :lemon: :pear: :strawberry: :tangerine: :pineapple: :shortcake: :cherries: :melon: :grapes: :watermelon: :green_apple: :red_apple: :banana: 介绍 用于捆绑JavaScript的最受欢迎的两个库是和...
tomato: 随笔背景特效:pear: 响应式开发:open_book: 网站运行时间:shaved_ice: 动态线条背景:strawberry: 背景线条特效:baby:代码雨:peach: DaoVoice聊天:sparkles: 自动打代码功能:memo: 欢迎访问的人描述:green_...
精彩内容: PHP5面向对象程序设计系列 PEAR探奇系列之PEAR::Text_Password PEAR::PEAR的析构器模拟 Smarty中section的简单使用 Xmlhttp使用手记
萌新源API管理系统源码_基于layui和pear-Admin-layui开发.txt
梨配置 前端配置系统,包括但不限于:多语言,图片,文案,链接,时间,活动开关,业务逻辑等功能配置。 ,实现一键变更。 :sparkles: 特征 :rainbow:基于业务需求编写json-schema配置 :package:可视化界面,对非...
现在称为-HTML_Template_Xipe并移至PEAR(pear.php.net,这是PHP的模板引擎,可以更轻松,更快速地创建和更好地构造网页/应用程序。SimpleTemplate还可以轻松地翻译模板并对其进行编译
PHP Warning: require_once(phar://go-pear.phar/index.php): failed to open stream: phar error: invalid url or non-existent phar “phar://go-pear.phar/index.php” in C:\php\PEAR\go-pear.phar on line 1236...
梨配置 前端配置系统,包括但不限于:多语言,图片,文案,链接,时间,活动开关,业务逻辑等功能配置。 ,实现一键变更。 :sparkles: 特征 :rainbow:基于业务需求编写json-schema配置 :package:可视化界面,对非...
梨管理员快速开箱即用的Spring快速开发平台|||项目介绍 :jack-o-lantern: Spring Boot +安全性+ MyBatis + Thymeleaf + Activiti快速开发平台项目不定时更新,建议Star watch一份模块划分功能名称实现方式完成度功能...
Pear Admin Boot 开 箱 即 用 的 Spring 快 速 开 发 平 台 | | | | 项目介绍 :jack-o-lantern: Spring Boot + Security + MyBatis + Thymeleaf + Activiti 快速开发平台 项目不定时更新,建议 Star watch 一份 ...
XML_HTMLSax 是一种基于 PHP SAX 的原生解析器,用于格式错误的 XML,例如 HTML。 它提供了一个类似于原生 PHP XML 扩展的 API,可以轻松地在两者之间切换。 也通过 http://pear.php.net/XML_HTMLSax 分发
木瓜应用 Google Play的定义 木瓜的应用程序和信息处理的重要性Además,daprássuperar undesafíoen cada Monumento y conseguir los distintos trofeos disponibles en laaplicación。 阿尔萨斯国家地理研究中心...
mysql> update user set password = password("wppassword") where User = 'wpuser'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> GRANT ALL PRIVILEGES ON wordpress.* ...
该项目的目的是提供用于在PHP代码中创建,验证,处理dojo / dijit元素的方法。
ist的matlab代码Text_LanguageDetect PHP库可从文本样本中识别人类语言。 返回每个的置信度分数。 安装 梨 $ pear install Text_LanguageDetect 作曲家 $ composer require pear/text_languagedetect 用法 另请参阅...
pear_2.3.5_D.apk
:pear: :melon: :avocado: :potato: :roasted_sweet_potato: :kiwi_fruit: :bento_box: :pancakes: :ear_of_corn: :broccoli: JAVA基础 。 用过哪些Map类,都有什么区别 JAVA8的ConcurrentHashMap为什么放弃了分段锁...
PHP Pear手册 PEAR类库,API,实例
优雅的Golang Web框架注意:此存储库包含Goyave框架的核心代码。 如果要构建Goyave应用程序,请访问Goyave模板项目存储库。 Goyave是一个优雅的Golang Web框架注意:此存储库包含Goyave框架的核心代码。...