`

PHP验证码功能的实现

    博客分类:
  • PHP
阅读更多
/**
	 *产生验证码图片
	 */
	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各种验证码实现

    这篇内容将详细介绍PHP如何实现各种验证码功能。 一、基础原理 验证码的核心在于生成一组随机数据并将其与服务器端保持同步,同时在客户端展示。在PHP中,我们可以通过GD库或Imagick扩展来创建图像,生成随机文本并...

    PHP实现的验证码类库

    通过这个PHP验证码类库,开发者可以快速集成验证码功能,提升网站的安全性,同时也能深入理解PHP的图像处理和session管理等核心概念。在实际应用中,可以根据具体需求对类库进行扩展和定制,以达到最佳的用户体验和...

    php 验证码实现

    要实现PHP验证码,我们分为以下几个步骤: 1. **生成随机字符串**:首先,我们需要创建一个随机字符串,长度通常在4到6位之间。可以使用`rand()`函数生成随机数字,再结合`chr()`函数将其转换为字符。为了增加复杂...

    好用的php验证码类库.zip

    总的来说,"好用的php验证码类库"为PHP开发者提供了一种便捷的方式,帮助他们在项目中快速实现高效且安全的验证码功能。通过深入理解和合理使用,可以大大提高开发效率,同时保障网站的安全性。

    php 和 mysql 实现 邮箱验证码

    在这个场景中,我们关注的是使用PHP进行邮箱验证以及通过邮箱验证码来实现密码的修改功能。下面将详细阐述这两个核心知识点。 首先,PHP是一种服务器端的脚本语言,广泛应用于Web开发,可以生成动态网页内容。在...

    php验证码类 php中文验证码

    在PHP中,创建自定义的验证码类可以帮助开发者实现更安全、更个性化的验证功能。这里我们将深入探讨“php中文验证码类”的相关知识点。 首先,验证码通常由随机字符组成,包括字母、数字甚至中文字符,目的是增加...

    PHP实现验证码自动识别

    PHP作为一款广泛应用的服务器端脚本语言,可以通过各种技术手段实现验证码的解析。在这个测试案例中,我们将探讨如何用PHP来实现实现验证码自动识别的过程。 首先,验证码识别通常涉及图像处理和机器学习。在PHP中...

    PHP快速生成图片验证码并且实现验证插件.rar

    本插件可以快速实现网站验证码功能,包括验证码的生成和验证。   2.所需参数: CaptchaTool类包括两个方法,generate方法可以实现生成'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'中的四位字符,并将这些字符写道...

    PHP随机验证码含有5种样式

    在PHP中实现验证码功能,可以有效地增加网站的安全性。本篇文章将深入探讨PHP实现的五种不同类型的验证码,包括中文、英文以及数字验证码。 首先,我们来了解一下验证码的基本原理。验证码通常由一串随机生成的字符...

    php登陆 修改 留言板中验证码的实现

    教你如何实现网站中的验证码功能 非常简单

    PHP发送邮箱验证码

    首先,要实现PHP发送邮箱验证码,我们需要了解SMTP(Simple Mail Transfer Protocol)协议。SMTP是互联网上传输电子邮件的标准,大多数邮件服务提供商,包括QQ邮箱,都支持SMTP服务。在QQ邮箱中,你需要先开启SMTP...

    php实例之PHP实现验证码功能.pdf

    php实例之PHP实现验证码功能.pdf , 讲的很透彻,很好的教程

    验证码的实现方法-局部刷新

    开发者可以通过阅读和理解这些文件,学习如何实现局部刷新的验证码功能。 总的来说,局部刷新验证码的实现不仅提升了用户体验,也简化了开发流程,尤其对于不熟悉Ajax技术的开发者,这是一个很好的实践案例。通过...

    PHP验证码代码,可参考

    这两个文件很可能是实现验证码功能的核心部分。下面将分别解释它们可能的作用,并探讨PHP验证码的实现原理。 `www.php` 文件可能是验证码的前端展示部分,它负责在网页上显示验证码图像。通常,这个文件会通过以下...

    PHP语音验证码和PHP图片验证码

    本资源提供了PHP实现的语音验证码和图片验证码的完整方案,适用于网站登录验证和投票功能。 首先,让我们详细了解PHP图片验证码(CAPTCHA)的工作原理和实现。图片验证码通常由一串随机生成的字母或数字组成,这些...

    哈尔滨php课堂实录_php实现验证码图_用jQuery实现ajax验证_源码

    **PHP验证码的实现** 验证码的主要目的是确保用户是人类而不是计算机程序。PHP可以生成包含随机字符的图像,这些字符通常扭曲或带有噪声,使得机器难以识别但人眼可以轻易辨认。在PHP中,我们可以使用GD库或者...

    php源码 验证码 类

    验证码在Web开发中扮演着重要的角色,主要用于防止自动机器人、恶意攻击或垃圾信息的提交。...本篇文章将深入探讨PHP验证码类的...开发者在编写此类时,需要综合考虑安全性、效率和易用性,确保验证码功能的可靠和实用。

    PHP图片验证码的实现.pdf

    PHP图片验证码的实现 PHP图片验证码是用于防止自动登录和恶意软件攻击的有效手段。验证码可以阻止通过恶意软件自动登录的行为,也能用于论坛防止大规模匿名回帖的发生,减轻爆破性攻击,避免网站数据库崩溃。 一、...

    php实现Ajax带有验证码的登陆注册功能

    4. 实现验证码功能,可以使用PHP的GD库生成随机图像和字符串,存储在服务器会话中。 总的来说,这个项目结合了PHP、Ajax、jQuery和验证码技术,提供了一个用户友好的、安全的登录注册体验。通过这种方式,开发者...

Global site tag (gtag.js) - Google Analytics