<!-- 网站建设www.ucantech.com
*@copyright(c)2011
*@author:Ernest
*@time:2011
*@version:new
-->
<?php
class VerifyImg {
public $fontSize = 15; //定义字体大小
public $length = 4; //定义字符串长度
public $width = 70; //定义图片宽度
public $height = 30; //定义图片高度
public $im = null; //生成一张指定宽高的图片
public $font = 'C:/Windows/Fonts/Arial.TTF';
public $strNum = "";
public function Build() {
$strings = Array ('1', '2','3', '4', '5', '6', '7', 'a', 'b', 'c', 'd', 'e', 'f', 'h', 'i', 'j', 'k', 'm', 'n', 'p', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y' );
// $strNum = "";
$count = count ( $strings );
for($i = 1; $i <= $this->length; $i ++) { //循环随机取字符生成字符串
$strNum .= $strings [rand ( 0, $count - 1 )];
}
session_start ();
$_SESSION ["verifycode"] = $strNum;
$this->im = imagecreate ( $this->width, $this->height );
$backgroundcolor = imagecolorallocate ( $this->im, 255, 255, 255 ); //生成背景色
$frameColor = imageColorAllocate ( $this->im, 0, 255, 0 );
for($i = 0; $i < $this->length; $i ++) {
$charY = ($this->height + 9) / 2 + rand ( - 1, 1 ); //定义字符Y坐标
$charX = $i * 15 + 8; //定义字符X坐标
// $text_color = imagecolorallocate($this->im, 255, 0, 0); //生成字符颜色
$text_color = imagecolorallocate ( $this->im, mt_rand ( 50, 255 ), mt_rand ( 50, 128 ), mt_rand ( 50, 200 ) );
$angle = rand ( - 20, 20 ); //生成字符角度
//写入字符
imagettftext ( $this->im, $this->fontSize, $angle, $charX, $charY, $text_color, $this->font, $strNum [$i] );
}
for($i = 0; $i <= 5; $i ++) { //循环画背景线
$linecolor = imagecolorallocate ( $this->im, mt_rand ( 0, 255 ), mt_rand ( 0, 255 ), mt_rand ( 0, 255 ) );
$linex = mt_rand ( 1, $this->width - 1 );
$liney = mt_rand ( 1, $this->height - 1 );
imageline ( $this->im, $linex, $liney, $linex + mt_rand ( 0, 4 ) - 2, $liney + mt_rand ( 0, 4 ) - 2, $linecolor );
}
for($i = 0; $i <= 32; $i ++) { //循环画背景点,生成麻点效果
$pointcolor = imagecolorallocate ( $this->im, mt_rand ( 0, 255 ), mt_rand ( 0, 255 ), mt_rand ( 0, 255 ) );
imagesetpixel ( $this->im, mt_rand ( 1, $this->width - 1 ), mt_rand ( 1, $this->height - 1 ), $pointcolor );
}
imagerectangle ( $this->im, 0, 0, $this->width - 1, $this->height - 1, $frameColor ); //画边框
ob_clean ();
header ( 'Content-type:image/png' );
imagepng ( $this->im );
imagedestroy ( $this->im );
}
}
$img = new VerifyImg ();
$img->Build ();
?> (fblww-0103)
分享到:
相关推荐
本项目以"PHP简单验证码的实现"为主题,旨在帮助初学者理解并掌握如何在PHP中创建一个基本的验证码功能。 验证码的核心在于生成随机且难以被机器识别的图像,通常包含字母、数字的组合,有时会添加扭曲、噪点等元素...
本篇文章将深入探讨这个"php验证码简单源码"的知识点。 首先,验证码的基本原理是生成一段随机的字符串或数字,然后通过图像或其他形式显示给用户,用户在提交表单时需要输入看到的验证码。这个过程要求验证码在...
跨域名PHP引用验证可带参数,例如 http://www.botu.in/index.php?code=3232 返回JSON参数 1为正确 0为错误 跨域名jQueryAjax引用验证可带参数,例如 http://www.botu.in/index.php?code=3232&jsoncallback=? 返回JSON...
例如,可能只有一个简单的`output()`方法用于在网页上显示验证码图像,以及一个`getCode()`方法获取验证码的字符串值。 在实际使用中,开发者可以将"好用的php验证码类"解压并引入到项目中,根据注释说明进行配置和...
以下是一个简单的GD库验证码实现步骤: 1. 生成随机字符串:使用`rand()`或`mt_rand()`函数生成一定长度的随机字符串。 2. 创建图像:使用`imagecreatetruecolor()`函数创建一个新的图像资源。 3. 设置背景:使用`...
在本文中,我们将深入探讨如何使用PHP来实现一个简单的图形验证码。 首先,我们需要理解验证码的基本原理。验证码通常由一串随机字符组成,这些字符可能是数字、字母或特殊符号的组合。为了增加破解难度,这些字符...
如果你选择使用`mail()`函数,它的语法相对简单,但功能较为有限。 以PHPMailer为例,以下是使用PHPMailer发送QQ邮箱验证码的基本步骤: 1. **引入PHPMailer库**:首先,确保你的项目中已经包含了PHPMailer库。...
下面,我们将深入探讨如何在PHP中创建一个简单而完整的数字与英文混合的验证码系统。 1. **验证码的基本原理**: 验证码通常由一串随机字符组成,这些字符可能是数字、字母或其他符号。用户在访问特定页面时会看到...
1. **数字验证码**:最简单的验证码类型是纯数字验证码,通常包含4-6个随机数字。在PHP中,我们可以使用 `rand()` 函数生成随机整数,并将其转换为字符串。然后,使用GD库在图像上绘制这些数字。 2. **英文验证码**...
在这个"php识别验证码完整例子"中,我们将探讨如何创建一个简单的PHP验证码系统。 首先,验证码的生成通常包括以下步骤: 1. **随机字符串生成**:PHP内置的`rand()`或`mt_rand()`函数可以生成随机数,结合字符集...
- 这些PHP验证码可能基于简单字符串生成,结合随机颜色和字体,以增加识别难度。 - 常用的PHP函数如`rand()`用于生成随机数字,`imagestring()`或`imagettftext()`用于在图像上绘制文本。 2. **图像扭曲验证码** ...
在PHP中实现验证码识别是一个挑战性的任务,因为这涉及到图像处理、模式识别和机器学习等领域。下面我们将深入探讨如何使用PHP进行验证码识别,以及在给定的压缩包资源中可能包含的内容。 首先,我们要理解验证码...
总结,这个项目提供了一个基础的PHP登录注册系统的实现,包括验证码的生成和验证,以及简单的文件操作。对于初学者来说,这是一个很好的起点,但同时也强调了在实际开发中需要考虑更多的安全性问题。
本文将详细介绍一个简单的PHP验证码实现方法,包括前端表单提交、图片验证码生成以及后端验证逻辑。 #### 二、整体结构 此PHP验证码实现主要包括三个部分:`authform.php`(验证码表单)、`authimg.php`(验证码...
PHP简单验证码功能机制的核心目的在于保护网站免受自动化攻击,如自动化的恶意注册、登录或表单提交等。验证码的原理基于人类与机器在识别图像上的差异,通过生成一个只有人类能够识别的字符序列,确保请求来自真实...
在测试案例"ceshi-demo1"中,可能包含了一个简单的PHP实现验证码识别的代码示例。这可能涵盖上述步骤的部分或全部,并且已经过测试,证明可以运行。为了进一步理解这个案例,你需要查看源代码,理解其工作原理并根据...
这就是一个简单的PHP生成验证码图片的过程。在实际开发中,我们还可以考虑优化验证码的可读性,比如调整字体大小、角度、颜色对比等,以及使用更复杂的算法生成更安全的验证码。`demo.php`文件很可能包含了上述部分...
php 验证码 源码 范例 简单 基础 入门
PHP实现简单实用的验证码类,$image->config('宽度','高度','字符个数','验证码session索引'),$image->create();//这样就会向浏览器输出一张图片,产生验证码,产生验证码图片,设置图片的干扰像素,在验证码图片上...