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概述.
Oct 09 PHP
PHP 5.3新特性命名空间规则解析及高级功能
Mar 11 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
Apr 29 PHP
PHP中使用TCPDF生成PDF文档实例
Jul 01 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
Jul 15 PHP
YII2.0之Activeform表单组件用法实例
Jan 09 PHP
php中实现进程锁与多进程的方法
Sep 18 PHP
探究Laravel使用env函数读取环境变量为null的问题
Dec 06 PHP
PHP验证码类ValidateCode解析
Jan 07 PHP
windows下的WAMP环境搭建图文教程(推荐)
Jul 27 PHP
PHP自定义序列化接口Serializable用法分析
Dec 29 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
Jun 05 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
PHP4实际应用经验篇(2)
2006/10/09 PHP
PHP数组交集的优化代码分析
2011/03/06 PHP
PHP使用内置dir类实现目录遍历删除
2015/03/31 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
2015/12/10 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
2016/02/23 PHP
js 加载时自动调整图片大小
2008/05/28 Javascript
标题过长使用javascript按字节截取字符串
2014/04/24 Javascript
JQuery 的跨域方法推荐_可跨任何网站
2016/05/18 Javascript
AngularJS 如何在控制台进行错误调试
2016/06/07 Javascript
原生js代码实现图片放大境效果
2016/10/30 Javascript
js实现股票实时刷新数据案例
2017/05/14 Javascript
Angularjs在360兼容模式下取数据缓存问题的解决办法
2017/06/22 Javascript
Vue SSR 组件加载问题
2018/05/02 Javascript
python批量制作雷达图的实现方法
2016/07/26 Python
pycharm+django创建一个搜索网页实例代码
2018/01/24 Python
Python3实现带附件的定时发送邮件功能
2020/12/22 Python
python实现监控某个服务 服务崩溃即发送邮件报告
2018/06/21 Python
基于python操作ES实例详解
2019/11/16 Python
Python实现微信好友的数据分析
2019/12/16 Python
PyQt5实现登录页面
2020/05/30 Python
Python将字典转换为XML的方法
2020/08/01 Python
python 简单的调用有道翻译
2020/11/25 Python
css3 border旋转时的动画应用
2016/01/22 HTML / CSS
生日派对邀请函
2014/01/13 职场文书
房屋买卖协议书
2014/04/10 职场文书
李培根演讲稿
2014/05/22 职场文书
企业形象策划方案
2014/05/29 职场文书
计算机专业求职信
2014/06/02 职场文书
党员干部群众路线个人整改措施
2014/09/18 职场文书
五好文明家庭事迹材料
2014/12/20 职场文书
茶楼服务员岗位职责
2015/02/09 职场文书
道歉情书大全
2015/05/12 职场文书
学习焦裕禄观后感
2015/06/09 职场文书
2019入党申请书范文3篇
2019/08/21 职场文书
Nginx 配置 HTTPS的详细过程
2022/05/30 Servers
HTML中link标签属性的具体用法
2023/05/07 HTML / CSS