一个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 相关文章推荐
使用 eAccelerator加速PHP代码的方法
Sep 30 PHP
php生成随机数或者字符串的代码
Sep 05 PHP
php preg_match_all结合str_replace替换内容中所有img
Oct 11 PHP
thinkphp3查询mssql数据库乱码解决方法分享
Feb 11 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
Apr 21 PHP
php函数与传递参数实例分析
Nov 15 PHP
php对文件进行hash运算的方法
Apr 03 PHP
php获取文件类型和文件信息的方法
Jul 10 PHP
服务器迁移php版本不同可能诱发的问题
Dec 22 PHP
php preg_match的匹配不同国家语言实例
Dec 29 PHP
PHP实现二维数组中的查找算法小结
Jun 09 PHP
PHP写API输出的时用echo的原因详解
Apr 28 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并发对MYSQL造成压力的解决方法
2013/02/21 PHP
php设计模式之命令模式的应用详解
2013/05/21 PHP
php 判断网页是否是utf8编码的方法
2014/06/06 PHP
清除网页历史记录,屏蔽后退按钮!
2008/12/22 Javascript
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
模仿百度三维地图的js数据分享
2011/05/12 Javascript
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
2011/10/16 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
js获取当前地址 JS获取当前URL的示例代码
2014/02/26 Javascript
编写高效jQuery代码的4个原则和5个技巧
2014/04/24 Javascript
node.js不得不说的12点内容
2014/07/14 Javascript
DOM基础教程之使用DOM控制表单
2015/01/20 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
2020/08/27 Javascript
js中getter和setter用法实例分析
2018/08/14 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
node.js express框架实现文件上传与下载功能实例详解
2019/10/15 Javascript
[47:21]Liquid vs TNC Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
2017/03/12 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
matplotlib 纵坐标轴显示数据值的实例
2018/05/25 Python
基于python生成器封装的协程类
2019/03/20 Python
Django实现基于类的分页功能
2019/10/31 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
2020/02/18 Python
python列表的逆序遍历实现
2020/04/20 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
Python getsizeof()和getsize()区分详解
2020/11/20 Python
理肤泉加拿大官网:La Roche-Posay加拿大
2018/07/06 全球购物
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
2012/01/21 面试题
为什么需要版本控制
2016/10/28 面试题
高中毕业生自我鉴定范文
2013/09/26 职场文书
男方父母婚礼答谢词
2014/01/25 职场文书
网络工程师职业规划
2014/02/10 职场文书
团日活动总结
2014/04/28 职场文书
关于雷锋的演讲稿
2014/05/10 职场文书