php生成验证码函数


Posted in PHP onOctober 20, 2015

php生成验证码的函数,实用靠谱。先上下生成的验证码的效果图(这里生成的是全数字的验证码的示例效果):

php生成验证码函数

下面是php生成验证码的源码:

<?php 
session_start(); 
//session_register('CheckCode'); 
//PHP4.2以上版本不需要用session_register()注册SESSION变量 
$type='gif'; 
$width= 45; 
$height= 20; 
header("Content-type: image/".$type); 
srand((double)microtime()*1000000); 
if(isset($_GET['action'])){ 
 $randval=randStr(4,$_GET['action']);  
}else{ 
 $randval=randStr(4,''); 
} 
if($type!='gif'&&function_exists('imagecreatetruecolor')){ 
 $im=@imagecreatetruecolor($width,$height); 
}else{ 
 $im=@imagecreate($width,$height); 
} 
$r=Array(225,211,255,223); 
$g=Array(225,236,237,215); 
$b=Array(225,236,166,125); 
$key=rand(0,3); 
$backColor=ImageColorAllocate($im,$r[$key],$g[$key],$b[$key]);//背景色(随机) 
$borderColor=ImageColorAllocate($im,127,157,185);//边框色 
$pointColor=ImageColorAllocate($im,255,170,255);//点颜色 
@imagefilledrectangle($im,0,0,$width - 1,$height - 1,$backColor);//背景位置 
@imagerectangle($im,0,0,$width-1,$height-1,$borderColor); //边框位置 
$stringColor=ImageColorAllocate($im,255,51,153); 
for($i=0;$i<=100;$i++){ 
 $pointX=rand(2,$width-2); 
 $pointY=rand(2,$height-2); 
 @imagesetpixel($im,$pointX,$pointY,$pointColor); 
} 
@imagestring($im,5,5,1,$randval,$stringColor); 
$ImageFun='Image'.$type; 
$ImageFun($im); 
@imagedestroy($im); 
$_SESSION['CheckCode']=$randval; 
function randStr($len=6,$format='ALL'){ 
 switch($format){ 
  case 'ALL'://生成包含数字和字母的验证码 
   $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; break; 
  case 'CHAR'://仅生成包含字母的验证码 
   $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; break; 
  case 'NUMBER'://仅生成包含数字的验证码 
   $chars='0123456789'; break; 
  default : 
   $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; break; 
 } 
 $string=''; 
 while(strlen($string)<$len) 
 $string.=substr($chars,(mt_rand()%strlen($chars)),1); 
 return $string; 
}

 该函数的具体使用方法请看如下这个示例(这里是生成全数字的验证码):

<img src="checkCode.php?action=NUMBER" width="45" height="20" />

以上就是php如何生成验证码的实现函数,希望对大家的学习有所帮助。

PHP 相关文章推荐
PHP+MYSQL的文章管理系统(一)
Oct 09 PHP
PHP4与PHP3中一个不兼容问题的解决方法
Oct 09 PHP
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
Feb 05 PHP
ThinkPHP 表单自动验证运用示例
Oct 13 PHP
PHP通过插入mysql数据来实现多机互锁实例
Nov 05 PHP
PHP动态输出JavaScript代码实例
Feb 12 PHP
PHP使用pear自带的mail类库发邮件的方法
Jul 08 PHP
php根据生日计算年龄的方法
Jul 13 PHP
php 数组字符串搜索array_search技巧
Jul 05 PHP
php 判断页面或图片是否经过gzip压缩的方法
Apr 05 PHP
php识别翻转iphone拍摄的颠倒图片
May 17 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
Apr 23 PHP
php文件上传你必须知道的几点
Oct 20 #PHP
PHP判断上传文件类型的解决办法
Oct 20 #PHP
php上传大文件失败的原因及应对策略
Oct 20 #PHP
PHP中如何使用session实现保存用户登录信息
Oct 20 #PHP
PHP+jQuery翻板抽奖功能实现
Oct 19 #PHP
php生成动态验证码gif图片
Oct 19 #PHP
php批量删除超链接的实现方法
Oct 19 #PHP
You might like
便携利器 — TECSUN PL-365简评
2021/03/02 无线电
与数据库连接
2006/10/09 PHP
php 缓存函数代码
2008/08/27 PHP
php学习笔记 数组遍历实现代码
2011/06/09 PHP
将博客园(cnblogs.com)数据导入到wordpress的代码
2013/01/06 PHP
自己写的php curl库实现整站克隆功能
2015/02/12 PHP
基于PHP实现的事件机制实例分析
2015/06/18 PHP
ExtJS下书写动态生成的xml(兼容火狐)
2013/04/02 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
2016/07/04 Javascript
AngularJS 过滤与排序详解及实例代码
2016/09/14 Javascript
JavaScript实现url参数转成json形式
2016/09/25 Javascript
vue动态路由配置及路由传参的方式
2018/05/23 Javascript
彻底弄懂 JavaScript 执行机制
2018/10/23 Javascript
Vue实现简单分页器
2018/12/29 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
Python随机生成数据后插入到PostgreSQL
2016/07/28 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
python  创建一个保留重复值的列表的补码
2018/10/15 Python
新年快乐! python实现绚烂的烟花绽放效果
2019/01/30 Python
Win10 安装PyCharm2019.1.1(图文教程)
2019/09/29 Python
python分布式计算dispy的使用详解
2019/12/22 Python
django迁移文件migrations的实现
2020/03/31 Python
Python的信号库Blinker用法详解
2020/12/31 Python
HTML5网页音乐播放器的示例代码
2017/11/09 HTML / CSS
three.js模拟实现太阳系行星体系功能
2019/09/03 HTML / CSS
打造完美自荐信
2014/01/24 职场文书
本科毕业自我鉴定
2014/03/20 职场文书
毕业生面试求职信
2014/06/23 职场文书
庆祝教师节主题班会
2015/08/17 职场文书
php 原生分页
2021/04/01 PHP
k-means & DBSCAN 总结
2021/04/27 Python
nginx服务器的下载安装与使用详解
2021/08/02 Servers
解决xampp安装后Apache无法启动
2022/03/21 Servers
vue中div禁止点击事件的实现
2022/04/02 Vue.js