频道直达 - 专题 - 新闻 - 基础 - 高级 - 安装 - 技巧 - 数据库 - 手册 - PHP - Linux - Java - MySQL - Apache - 麻辣堂 - 狼盟 - Rails社群 - 搜索 - 下载 - 开源 - 论坛

很强的PHP验证码

来源:www.phpres.com 作者:Angelover 出处:www.phpres.com 2007-9-11 17:36:29 进入讨论组
关 键 词: 验证 this 图像 var @accessprivate 字符 @vararray array

看到的一个验证码类,写的很强。但有些逻辑方面感觉处理的不好,然后我不喜欢完全用session来处理验证码。这在大型系统中是很不好的。

   修改后如下。

<?php
/**
 * 这个类用于生成验证码图像, 同时可以对用户输入的验证码进行验证
 * 
 * @author  ♂bingo↗ [coolhpy@163.com]
 * @since   2006-6-17
 * @modify  feifengxlq <feifengxlq@gmail.com> http://www.phpobject.net/blog
 * @modify  2006-11-9
 * 修改说明
 */


class 
authcode 
{
    
/**
     * 验证码
     *  char:  字符
     *  angle: 字符偏移的角度 (-30 <= angle <= 30)
     *  color: 字符颜色
     * 
     * @var     array
     * @access  private
     */
    
var $code 
= array();

    
/**
     * 字体信息
     *  space: 字符间隔 (px)
     *  size:  字体大小 (px)
     *  left:  第一个字符距离图像最左边的象素 (px)
     *  top:   字符距离图像最上边的象素 (px)
     *  file:  字体文件的路径
     * 
     * @var     array
     * @access  private
     */
    
var $font 
= array();

    
/**
     * 图像信息
     *  type:   图像类型
     *  mime:   MIME 类型
     *  width:  图像的宽 (px)
     *  height: 图像高 (px)
     *  func:   创建图像的方法
     * 
     * @var     array
     * @access  private
     */
    
var $image 
= array();

    
/**
     * 干扰信息
     *  type:    干扰类型 (false 表示不使用)
     *  density: 干扰密度
     * 
     * @var     array
     * @access  private
     */
    
var $molestation 
= array();

    
/**
     * 背景色 (RGB)
     *  r: 红色 (0 - 255)
     *  g: 绿色 (0 - 255)
     *  b: 蓝色 (0 - 255)
     * 
     * @var     array
     * @access  private
     */
    
var $bg_color 
= array();

    
/**
     * 默认前景色 (RGB)
     *  r: 红色 (0 - 255)
     *  g: 绿色 (0 - 255)
     *  b: 蓝色 (0 - 255)
     * 
     * @var     array
     * @access  private
     */
    
var $fg_color 
= array();
    
    var 
$authcode=''
;

    
/**
     * 构造函数,初始化各变量
     * 
     * @access  public
     */
    
function __construct
() 
    {
        
        
$this->setCode
();
        
$this->setMolestation
();
        
$this->setImage
();
        
$this->setFont
();
        
$this->setBgColor
();
    }
    
    
/**
      * 获取产生的authcode
    */
    
function getcode
()
    {
        return 
$this->authcode
;
    }

    
/**
     * 绘制图像
     * 
     * @access  public
     * @param   string  文件名, 留空表示输出到浏览器
     * @return  void
     */
    
function paint($filename=''

    {
        
// 创建图像
        
$im imagecreatetruecolor($this->image['width'
], 
                                   
$this->image['height'
]);

        
// 设置图像背景

        
$bg_color imagecolorallocate($im$this->bg_color['r'
], 
                                       
$this->bg_color['g'
], 
                                       
$this->bg_color['b'
]);
        
imagefilledrectangle($im00$this->image['width'
PHP开发资源论坛讨论。
收藏此文】【 】【打印】【关闭
相关文章
图文推荐
论 坛 资 源
PHP开发资源网奋斗目标
阅读排行:
热门技术文档
最新图文档
本站编辑推荐:(本站开通Delphi4PHP专区,欢迎进入论坛交流!)
编缉最近更新文章
网站赞助商
搜索您感兴趣的内容