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
教你如何把一篇文章按要求分段
Oct 09 PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
May 16 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
Sep 13 PHP
php使用异或实现的加密解密实例
Sep 04 PHP
php实现文件下载简单示例(代码实现文件下载)
Mar 10 PHP
PHP数据库连接mysql与mysqli对比分析
Jan 04 PHP
php车辆违章查询数据示例
Oct 14 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
Sep 16 PHP
php实现微信公众平台发红包功能
Jun 14 PHP
PHP操作路由器实现方法示例
Apr 27 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
Apr 04 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
PHP中feof()函数实例测试
2014/08/23 PHP
PHP树-不需要递归的实现方法
2016/06/21 PHP
javascript 一个函数对同一元素的多个事件响应
2009/07/25 Javascript
替代window.event.srcElement效果的可兼容性的函数
2009/12/18 Javascript
JS关键字变色实现思路及代码
2013/02/21 Javascript
jQuery网页右侧广告跟随滚动代码分享
2020/04/20 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
vue2中filter()的实现代码
2017/07/09 Javascript
vue中父子组件注意事项,传值及slot应用技巧
2018/05/09 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
2018/08/24 Javascript
记一次webapck4 配置文件无效的解决历程
2018/09/19 Javascript
vue+axios+promise实际开发用法详解
2018/10/15 Javascript
Vue使用localStorage存储数据的方法
2019/05/27 Javascript
微信小程序iOS下拉白屏晃动问题解决方案
2019/10/12 Javascript
微信小程序wxs实现吸顶效果
2020/01/08 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
vue中keep-alive、activated的探讨和使用详解
2020/07/26 Javascript
js实现移动端图片滑块验证功能
2020/09/29 Javascript
[04:00]DOTA2解说界神雕侠侣 CJ第四天谷子现场过生日
2013/07/30 DOTA
python利用lxml读写xml格式的文件
2017/08/10 Python
mac安装scrapy并创建项目的实例讲解
2018/06/13 Python
python for循环remove同一个list过程解析
2019/08/14 Python
使用python实现对元素的长截图功能
2019/11/14 Python
python3.8下载及安装步骤详解
2020/01/15 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
2020/10/20 Python
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
定制iPhone和Macbook保护壳:Slick Case
2018/11/21 全球购物
Converse匡威法国官网:美国著名帆布鞋品牌
2018/12/05 全球购物
一些Unix笔试题和面试题
2013/01/22 面试题
学校教师安全责任书
2014/07/23 职场文书
法定代表人授权委托书
2014/09/19 职场文书
2014年质检工作总结
2014/11/26 职场文书
先进个人事迹材料范文
2014/12/30 职场文书
2015年数学教研工作总结
2015/07/22 职场文书
《家》读后感:万惜拯救,冷暖自知
2019/09/25 职场文书
Mysql如何实现不存在则插入,存在则更新
2022/03/25 MySQL