/**
*产生验证码图片
*/
public function actionVerfiycode() {
Header ( "Content-type: image/gif" );
$border = 0; //是否要边框 1要:0不要
$how = 4; //验证码位数
$w = $how * 15; //图片宽度
$h = 20; //图片高度
$fontsize = 5; //字体大小
$alpha = "abcdefghijkmnopqrstuvwxyz"; //验证码内容1:字母
$number = "0123456789"; //验证码内容2:数字
$randcode = ""; //验证码字符串初始化
srand ( ( double ) microtime () * 1000000 ); //初始化随机数种子
$im = ImageCreate ( $w, $h ); //创建验证图片
$bgcolor = ImageColorAllocate ( $im, 255, 255, 255 ); //设置背景颜色
ImageFill ( $im, 0, 0, $bgcolor ); //填充背景色
if ($border) {
$black = ImageColorAllocate ( $im, 0, 0, 0 ); //设置边框颜色
ImageRectangle ( $im, 0, 0, $w - 1, $h - 1, $black ); //绘制边框
}
for($i = 0; $i < $how; $i ++) {
$alpha_or_number = mt_rand ( 0, 1 ); //字母还是数字
$str = $alpha_or_number ? $alpha : $number;
$which = mt_rand ( 0, strlen ( $str ) - 1 ); //取哪个字符
$code = substr ( $str, $which, 1 ); //取字符
$j = ! $i ? 4 : $j + 15; //绘字符位置
$color3 = ImageColorAllocate ( $im, mt_rand ( 0, 100 ), mt_rand ( 0, 100 ), mt_rand ( 0, 100 ) ); //字符随即颜色
ImageChar ( $im, $fontsize, $j, 3, $code, $color3 ); //绘字符
$randcode .= $code; //逐位加入验证码字符串
}
for($i = 0; $i < 5; $i ++) //绘背景干扰线
{
$color1 = ImageColorAllocate ( $im, mt_rand ( 0, 255 ), mt_rand ( 0, 255 ), mt_rand ( 0, 255 ) ); //干扰线颜色
ImageArc ( $im, mt_rand ( - 5, $w ), mt_rand ( - 5, $h ), mt_rand ( 20, 300 ), mt_rand ( 20, 200 ), 55, 44, $color1 ); //干扰线
}
for($i = 0; $i < $how * 40; $i ++) //绘背景干扰点
{
$color2 = ImageColorAllocate ( $im, mt_rand ( 0, 255 ), mt_rand ( 0, 255 ), mt_rand ( 0, 255 ) ); //干扰点颜色
ImageSetPixel ( $im, mt_rand ( 0, $w ), mt_rand ( 0, $h ), $color2 ); //干扰点
}
$session=new CHttpSession;
$session->open();
Yii::app()->session->add('randcode',$randcode);
/*绘图结束*/
Imagegif ( $im );
ImageDestroy ( $im );
/*绘图结束*/
}
引自:
http://www.admin5.com/article/20080314/75984.shtml
分享到:
相关推荐
本项目以"PHP简单验证码的实现"为主题,旨在帮助初学者理解并掌握如何在PHP中创建一个基本的验证码功能。 验证码的核心在于生成随机且难以被机器识别的图像,通常包含字母、数字的组合,有时会添加扭曲、噪点等元素...
这篇内容将详细介绍PHP如何实现各种验证码功能。 一、基础原理 验证码的核心在于生成一组随机数据并将其与服务器端保持同步,同时在客户端展示。在PHP中,我们可以通过GD库或Imagick扩展来创建图像,生成随机文本并...
通过这个PHP验证码类库,开发者可以快速集成验证码功能,提升网站的安全性,同时也能深入理解PHP的图像处理和session管理等核心概念。在实际应用中,可以根据具体需求对类库进行扩展和定制,以达到最佳的用户体验和...
要实现PHP验证码,我们分为以下几个步骤: 1. **生成随机字符串**:首先,我们需要创建一个随机字符串,长度通常在4到6位之间。可以使用`rand()`函数生成随机数字,再结合`chr()`函数将其转换为字符。为了增加复杂...
总的来说,"好用的php验证码类库"为PHP开发者提供了一种便捷的方式,帮助他们在项目中快速实现高效且安全的验证码功能。通过深入理解和合理使用,可以大大提高开发效率,同时保障网站的安全性。
在这个场景中,我们关注的是使用PHP进行邮箱验证以及通过邮箱验证码来实现密码的修改功能。下面将详细阐述这两个核心知识点。 首先,PHP是一种服务器端的脚本语言,广泛应用于Web开发,可以生成动态网页内容。在...
在PHP中,创建自定义的验证码类可以帮助开发者实现更安全、更个性化的验证功能。这里我们将深入探讨“php中文验证码类”的相关知识点。 首先,验证码通常由随机字符组成,包括字母、数字甚至中文字符,目的是增加...
PHP作为一款广泛应用的服务器端脚本语言,可以通过各种技术手段实现验证码的解析。在这个测试案例中,我们将探讨如何用PHP来实现实现验证码自动识别的过程。 首先,验证码识别通常涉及图像处理和机器学习。在PHP中...
本插件可以快速实现网站验证码功能,包括验证码的生成和验证。 2.所需参数: CaptchaTool类包括两个方法,generate方法可以实现生成'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'中的四位字符,并将这些字符写道...
在PHP中实现验证码功能,可以有效地增加网站的安全性。本篇文章将深入探讨PHP实现的五种不同类型的验证码,包括中文、英文以及数字验证码。 首先,我们来了解一下验证码的基本原理。验证码通常由一串随机生成的字符...
教你如何实现网站中的验证码功能 非常简单
首先,要实现PHP发送邮箱验证码,我们需要了解SMTP(Simple Mail Transfer Protocol)协议。SMTP是互联网上传输电子邮件的标准,大多数邮件服务提供商,包括QQ邮箱,都支持SMTP服务。在QQ邮箱中,你需要先开启SMTP...
php实例之PHP实现验证码功能.pdf , 讲的很透彻,很好的教程
开发者可以通过阅读和理解这些文件,学习如何实现局部刷新的验证码功能。 总的来说,局部刷新验证码的实现不仅提升了用户体验,也简化了开发流程,尤其对于不熟悉Ajax技术的开发者,这是一个很好的实践案例。通过...
这两个文件很可能是实现验证码功能的核心部分。下面将分别解释它们可能的作用,并探讨PHP验证码的实现原理。 `www.php` 文件可能是验证码的前端展示部分,它负责在网页上显示验证码图像。通常,这个文件会通过以下...
本资源提供了PHP实现的语音验证码和图片验证码的完整方案,适用于网站登录验证和投票功能。 首先,让我们详细了解PHP图片验证码(CAPTCHA)的工作原理和实现。图片验证码通常由一串随机生成的字母或数字组成,这些...
**PHP验证码的实现** 验证码的主要目的是确保用户是人类而不是计算机程序。PHP可以生成包含随机字符的图像,这些字符通常扭曲或带有噪声,使得机器难以识别但人眼可以轻易辨认。在PHP中,我们可以使用GD库或者...
验证码在Web开发中扮演着重要的角色,主要用于防止自动机器人、恶意攻击或垃圾信息的提交。...本篇文章将深入探讨PHP验证码类的...开发者在编写此类时,需要综合考虑安全性、效率和易用性,确保验证码功能的可靠和实用。
PHP图片验证码的实现 PHP图片验证码是用于防止自动登录和恶意软件攻击的有效手段。验证码可以阻止通过恶意软件自动登录的行为,也能用于论坛防止大规模匿名回帖的发生,减轻爆破性攻击,避免网站数据库崩溃。 一、...
4. 实现验证码功能,可以使用PHP的GD库生成随机图像和字符串,存储在服务器会话中。 总的来说,这个项目结合了PHP、Ajax、jQuery和验证码技术,提供了一个用户友好的、安全的登录注册体验。通过这种方式,开发者...