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


Posted in PHP onJuly 17, 2011
<?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('-',$code); 
shuffle($codeArray); 
$this->codes = implode('',array_slice($codeArray,0,4)); 
} 
public function CreateImg() 
{ 
$_SESSION['check_pic'] = $this->codes; 
$img = imagecreate(70,25); 
imagecolorallocate($img,222,222,222); 
$testcolor1 = imagecolorallocate($img,255,0,0); 
$testcolor2 = imagecolorallocate($img,51,51,51); 
$testcolor3 = imagecolorallocate($img,0,0,255); 
$testcolor4 = imagecolorallocate($img,255,0,255); 
for ($i = 0; $i < 4; $i++) 
{ 
imagestring($img,rand(5,6),8 + $i * 15,rand(2,8),$this->codes[$i],rand(1,4)); 
} 
imagegif($img); 
} 
} 
$code = new SecurityCode(); 
$code->CreateImg(); 
$code = NULL; 
?>

封装成类之后,加入了构造函数,使用起来也方便些。你也可以继续完善下这个验证码类,比如加入析构函数,如何更节省内存等等。
PHP 相关文章推荐
VFP与其他应用程序的集成
Oct 09 PHP
回答PHPCHINA上的几个问题:URL映射
Feb 14 PHP
WindowsXP中快速配置Apache+PHP5+Mysql
Jun 05 PHP
坏狼的PHP学习教程之第1天
Jun 15 PHP
提升PHP性能的21种方法介绍
Jun 25 PHP
PHP自动重命名文件实现方法
Nov 04 PHP
php生成过去100年下拉列表的方法
Jul 20 PHP
深入浅析用PHP实现MVC
Mar 02 PHP
浅谈PHP正则中的捕获组与非捕获组
Jul 18 PHP
php中this关键字用法分析
Dec 07 PHP
php-fpm添加service服务的例子
Apr 27 PHP
php两点地理坐标距离的计算方法
Dec 29 PHP
PHP 验证码的实现代码
Jul 17 #PHP
PHP中用hash实现的数组
Jul 17 #PHP
PHP中文分词的简单实现代码分享
Jul 17 #PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
Jul 17 #PHP
从手册去理解分析PHP session机制
Jul 17 #PHP
php数组的一些常见操作汇总
Jul 17 #PHP
PHP在特殊字符前加斜杠的实现代码
Jul 17 #PHP
You might like
PHP初学入门
2006/11/19 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
2014/11/19 PHP
PHP使用SOAP扩展实现WebService的方法
2016/04/01 PHP
php 多文件上传的实现实例
2016/10/23 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
2019/10/10 PHP
TNC vs RR BO3 第一场 2.14
2021/03/10 DOTA
一些不错的js函数ajax
2008/08/20 Javascript
Javascript中的var_dump函数实现代码
2009/09/07 Javascript
浅谈 javascript 事件处理
2015/01/04 Javascript
如何用javascript计算文本框还能输入多少个字符
2015/07/29 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
2016/06/20 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
2017/03/07 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
2018/08/08 Javascript
webpack 代码分离优化快速指北
2019/05/18 Javascript
Vue.js递归组件实现组织架构树和选人功能
2019/07/04 Javascript
vue项目出现页面空白的解决方案
2019/10/31 Javascript
angula中使用iframe点击后不执行变更检测的问题
2020/05/10 Javascript
ES2020系列之空值合并运算符 '??'
2020/07/22 Javascript
JavaScript实现下拉列表
2021/01/20 Javascript
python 参数列表中的self 显式不等于冗余
2008/12/01 Python
对Python中DataFrame按照行遍历的方法
2018/04/08 Python
在pandas中一次性删除dataframe的多个列方法
2018/04/10 Python
Pycharm 设置默认头的图文教程
2019/01/17 Python
Python中的pathlib.Path为什么不继承str详解
2019/06/23 Python
最小二乘法及其python实现详解
2020/02/24 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
2020/08/27 Python
HTML5图片层叠的实现示例
2020/07/07 HTML / CSS
英国奢侈品概念店:Base Blu
2019/05/16 全球购物
计算机应届毕业生自荐信范文
2014/02/23 职场文书
药品营销策划方案
2014/06/15 职场文书
教师职业道德事迹材料
2014/08/18 职场文书
世界读书日的活动方案
2014/08/20 职场文书
2014年党员干部四风问题自我剖析材料
2014/09/29 职场文书
JavaScript中时间格式化新思路toLocaleString()
2021/11/07 Javascript