一个好用的PHP验证码类实例分享

分享一个好用的php验证码类,包括调用示例。
说明:
如果不适用指定的字体,那么就用imagestring()函数,如果需要遇到指定的字体,就要用到imagettftext()函数。字体的位置在C盘下Windows/Fonts.

参考了网上的php 生成验证码的方法,以及php 图片验证码和php 中文验证码的生成方法。用到了PHP GD库的相关知识。

1,生成验证码的类 VerificationCode.class.php


代码如下:

<?php 
    class VerificationCode{ 
        private $charset="abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ23456789";  //随机因子 
        private $code;  //验证码 
        private $codelen=4; //验证码长度 
        private $width=110; //宽度 
        private $height=30; //高度 
        private $img;   //图像资源句柄 
        private $font;  //制定字体 
        private $fontSize=25;   //字体大小 
        private $fontColor; //字体颜色 
        public function __construct(){ 
            $this->font="CALIBRIZ.TTF"; 
        } 
        //生成验证码 
        private function createCode(){ 
            $len=strlen($this->charset)-1; 
            for ($i = 0; $i < $this->codelen; $i++) { 
                $this->code .= $this->charset[mt_rand(0,$len)]; 
            } 
        } 
        //生成背景 
        private function createBg(){ 
            $this->img=imagecreatetruecolor($this->width,$this->height); 
            $color = imagecolorallocate($this->img,mt_rand(157,255),mt_rand(157,255),mt_rand(157,255)); 
            imagefilledrectangle($this->img,0,$this->height,$this->width,0,$color); 
        } 
        //生成文字 
        private function createFont(){ 
            $x=$this->width/$this->codelen; 
            for ($i = 0; $i < $this->codelen; $i++) { 
                $this->fontColor=imagecolorallocate($this->img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156)); 
                imagettftext($this->img,$this->fontSize,mt_rand(-30,30),$i*$x+mt_rand(1,5),$this->height/1.4,$this->fontColor,$this->font,$this->code[$i]);  // www.jb51.net
                //imagestring($this->img,5,$i*$x+mt_rand(1,5),5,$this->code[$i],$this->fontColor); 
            } 
        } 
        //生成线条、雪花 
        private function createDisturb(){ 
            for ($i = 0; $i < 6; $i++) { 
                $color=imagecolorallocate($this->img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156)); 
                imageline($this->img,mt_rand(0,$this->width),mt_rand(0,$this->width),mt_rand(0,$this->width),mt_rand(0,$this->width),$color); 
            } 
            for ($i = 0; $i < 100; $i++) { 
                $color=imagecolorallocate($this->img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)); 
                imagestring($this->img,mt_rand(1,5),mt_rand(0,$this->width),mt_rand(0,$this->height),'*',$color); 
            } 
        } 
        //输出 
        private function outPut(){ 
            header("Content-Type:image/png"); 
            imagepng($this->img); 
            imagedestroy($this->img); 
        } 
        public function showCode(){ 
            $this->createBg(); 
            $this->createCode(); 
            $this->createDisturb(); 
            $this->createFont(); 
            $this->outPut(); 
        } 
        //获取验证码 
        public function getCode(){ 
            return strtolower($this->code); 
        } 
    } 
?>

code.php

代码如下:

<?php 
    session_start(); 
    require_once 'VerificationCode.class.php'; 
    $code=new VerificationCode(); 
    $_SESSION['code']=$code->getCode(); 
    $code->showCode(); 
?>

验证码:<input type="text" name="code" /><img src="code.php" onclick="javascript:this.src='code.php?time='+Math.random();" />

时间: 2013-12-26

一个漂亮的php验证码类(分享)

直接上代码: 复制代码 代码如下: //验证码类class ValidateCode { private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789';//随机因子 private $code;//验证码 private $codelen = 4;//验证码长度 private $width = 130;//宽度 private $height = 50;//高度 private $img;//图形资源句柄 pri

PHP验证码类代码( 最新修改,完全定制化! )

Authnum.class.php 下载 复制代码 代码如下: <?php session_start(); class Authnum { //图片对象.宽度.高度.验证码长度 private $im; private $im_width; private $im_height; private $len; //随机字符串.y轴坐标值.随机颜色 private $randnum; private $y; private $randcolor; //背景色的红绿蓝,默认是浅灰色 public $

php实现的Captcha验证码类实例

本文实例讲述了php实现的Captcha验证码类,在php程序设计中有着极其广泛的应用.分享给大家供大家参考.具体方法如下: 验证码类文件如下: <?php /** Captcha 验证码类 * Date: 2011-02-19 * Author: fdipzone */ class Captcha{ //class start private $sname = ''; public function __construct($sname=''){ // $sname captcha sessi

PHP 动态随机生成验证码类代码

下面是效果图,这个效果图是没有开启干扰码的效果图 下面是类代码 复制代码 代码如下: <?php /************************************************ //FILE:ImageCode //DONE:生成动态验证码类 //DATE"2010-3-31 //Author:www.5dkx.com 5D开心博客 *********************************************************************

一个PHP验证码类代码分享(已封装成类)

复制代码 代码如下: <?php session_start(); Header("Content-type: image/gif"); class SecurityCode { private $codes = ''; function __construct() { $code = '0-1-2-3-4-5-6-7-8-9-A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z'; $codeArray = explode('-

php封装的验证码类分享

验证码是我们开发的时候经常用到的功能,所以在此本人包装了一个验证码类,应该可以作为php的类插件用,在此分享给各位读友. 实现的原理也是很简单,就是利用画布的几个函数,再加上一些字符串的获取,东凑西凑就构成了,呵呵. 这里大概写一下思路吧,其实这个类已经注释的非常清楚了,不过,个人还是在行文前啰嗦一下. 首先是关于一些函数的解释,这里的解释纯属个人体会,有什么错误的地方,还请读者指正. 1.创建画布函数:imagecreatetruecolor(w,h); 说明:用于创建一个画布. w 画布的宽

PHP学习笔记 用户注册模块用户类以及验证码类

所以,把第一章,可重用类的代码贴出来,便于以后查阅以及供给有需要的朋友. :User类,包括读取和设置数据库,以及保存更改交互 复制代码 代码如下: <?php class User{ private $uid; private $fields; public function __construct(){ $this->uid=null; $this->fields=array('username'=>'','password'=>'','emailAddr'=>''

一个经典的PHP验证码类分享

我们通过PHP的GD库图像处理内容,设计一个验证码类Vcode.将该类声明在文件vcode.class.php中,并通过面向对象的特性将一些实现的细节封装在该类中.只要在创建对象时,为构造方法提供三个参数,包括创建验证码图片的宽度.高度及验证码字母个数,就可以成功创建一个验证码类的对象.该类的声明代码如下所示: <?php class Vcode { private $width; //宽 private $height; //高 private $num; //数量 private $code

分享一个漂亮的php验证码类

本文实例为大家分享了一个漂亮的php验证码类,供大家参考,具体内容如下 //验证码类 class ValidateCode { private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789';//随机因子 private $code;//验证码 private $codelen = 4;//验证码长度 private $width = 130;//宽度 private $height = 50;//高度 privat

一个实用的php验证码类

万能php验证码类,供大家参考,具体内容如下 code.php是验证码类,类的名称最好和文件名的名称一样,这样有利于我们的查看. code.php <?php header('Content-type:text/html;charset=utf8'); class Code{ // 验证码个数$number protected $number; // 验证码类型$codeType protected $codeType; // 验证码图像宽度$width protected $width; //

Python随机生成一个6位的验证码代码分享

1. 生成源码 复制代码 代码如下: # -*- coding: utf-8 -*- import random def generate_verification_code():     ''' 随机生成6位的验证码 '''     code_list = []     for i in range(10): # 0-9数字         code_list.append(str(i))     for i in range(65, 91): # A-Z         code_list.

一个PHP的ZIP压缩类分享

功能:将文件压缩成zip,或者rar的压缩包.后缀名可以自定义. 使用方法:首先实例化,然后传参.两个参数.第一个关于你文件地址的一个Array.第二个是要你要保存的压缩包文件的绝对地址. 使用例子: 复制代码 代码如下: $zipfiles =array("/root/pooy/test1.txt","/root/pooy/test2.txt");        $z = new PHPZip();        //$randomstr = random(8);

php生成验证码,缩略图及水印图的类分享

封装了一个类,可生成验证码,缩略图,及水印图,分享给大家 <?php class image{ session_start(); //验证码类 static public function verify($code,$width=75,$height=25,$n=4){ header("content-type:image/png"); // 创建画布 $img=imagecreatetruecolor($width,$height); // 设置背景色 $bgcolor=ima