一个好用的PHP验证码类实例分享
2015-01-24信息快讯网
这篇文章主要介绍了一个好用的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();" />
一个经典的PHP验证码类分享
php实现的click captcha点击验证码类实例
php实现的Captcha验证码类实例
PHP生成图片验证码、点击切换实例
PHP生成随机密码类分享
PHP网页游戏学习之Xnova(ogame)源码解读(十二)
PHP网页游戏学习之Xnova(ogame)源码解读(十一)
PHP获取windows登录用户名的方法
单台服务器的PHP进程之间实现共享内存的方法
一个严格的PHP Session会话超时时间设置方法
PHP+javascript制作带提示的验证码源码分享
一个简单的PHP验证码实现代码
简单的php新闻发布系统教程
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
thinkphp验证码显示不出来的解决方法
一漂亮的PHP图片验证码实例
浅谈PHP变量作用域以及地址引用问题
PHP连接SQLServer2005方法及代码
php截取中文字符串不乱码的方法
php输入流php://input使用示例(php发送图片流到服务器)
php二维数组排序方法(array_multisort usort)
php缩小png图片不损失透明色的解决方法
生成随机字符串和验证码的类的PHP实例
根据中文裁减字符串函数的php代码
保存到桌面、设为桌面且带图标的PHP代码
简单的php文件上传(实例)
8个必备的PHP功能实例代码
PHP生成Gif图片验证码
PHP 验证码不显示只有一个小红叉的解决方法
PHP验证码函数代码(简单实用)
php生成图形验证码几种方法小结
一个漂亮的php验证码类(分享)
PHP实现的封装验证码类详解