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 相关文章推荐
phpfans留言版用到的install.php
Jan 04 PHP
测试您的 PHP 水平的题目
May 30 PHP
php GD绘制24小时柱状图
Jun 28 PHP
fleaphp crud操作之findByField函数的使用方法
Apr 23 PHP
解析Win7 XAMPP apache无法启动的问题
Jun 26 PHP
php中使用base HTTP验证的方法
Apr 20 PHP
Yii框架上传图片用法总结
Mar 28 PHP
ThinkPHP 模板substr的截取字符串函数详解
Jan 09 PHP
学习thinkphp5.0验证类使用方法
Nov 16 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
Oct 12 PHP
在Laravel中使用MongoDB的方法示例
Nov 11 PHP
PHP7 弃用功能
Mar 09 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和PHP5性能测试和对比 测试代码与环境
2007/08/17 PHP
PHP 得到根目录的 __FILE__ 常量
2008/07/23 PHP
用php的ob_start来生成静态页面的方法分析
2011/03/09 PHP
关于session在PHP5的配置文件中的详细设置参数说明
2011/04/20 PHP
关于PHPDocument 代码注释规范的总结
2013/06/25 PHP
php中in_array函数用法分析
2014/11/15 PHP
php面向对象的用户登录身份验证
2017/06/08 PHP
PHP实现验证码校验功能
2017/11/16 PHP
学习YUI.Ext第五日--做拖放Darg&amp;Drop
2007/03/10 Javascript
CSS常用网站布局实例
2008/04/03 Javascript
js prototype截取字符串函数
2010/04/01 Javascript
Extjs中ComboBoxTree实现的下拉框树效果(自写)
2013/05/28 Javascript
JS中字符串trim()使用示例
2015/05/26 Javascript
js判断手机号运营商的方法
2015/10/23 Javascript
three.js快速入门【推荐】
2017/01/21 Javascript
微信sdk实现禁止微信分享(使用原生php实现)
2019/11/15 Javascript
小程序websocket心跳库(websocket-heartbeat-miniprogram)
2020/02/23 Javascript
python使用wmi模块获取windows下硬盘信息的方法
2015/05/15 Python
python把转列表为集合的方法
2019/06/28 Python
python3中sys.argv的实例用法
2020/04/24 Python
Django中文件上传和文件访问微项目的方法
2020/04/27 Python
python不同系统中打开方法
2020/06/23 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
h5网页水印SDK的实现代码示例
2019/02/19 HTML / CSS
澳洲本土太阳镜品牌:Quay Australia
2019/07/29 全球购物
如何用Python输出一个Fibonacci数列
2016/08/28 面试题
应聘护理专业毕业自荐书范文
2014/02/12 职场文书
《可爱的动物》教学反思
2014/02/22 职场文书
保护环境倡议书300字
2014/05/19 职场文书
企业文化理念标语
2014/06/10 职场文书
加强干部作风建设整改方案
2014/10/24 职场文书
2015年业务员工作总结范文
2015/04/07 职场文书
党支部对转正的意见
2015/06/02 职场文书
2015暑期社会实践调查报告
2015/07/14 职场文书
简短的人生哲理(38句)
2019/08/13 职场文书
Python四款GUI图形界面库介绍
2022/06/05 Python