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 构造函数construct的前下划线是双的_
Dec 08 PHP
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
Mar 29 PHP
PHP实现下载功能的代码
Sep 29 PHP
php自动加载autoload机制示例分享
Feb 20 PHP
thinkphp的c方法使用示例
Feb 24 PHP
PHP按行读取、处理较大CSV文件的代码实例
Apr 09 PHP
php通过ajax实现双击table修改内容
Apr 28 PHP
php计算两个文件相对路径的方法
Mar 14 PHP
php输出反斜杠的实例方法
Sep 19 PHP
PHP实现文件上传与下载
Aug 28 PHP
PHP后门隐藏的一些技巧总结
Nov 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实现WEB动态网页静态
2006/10/09 PHP
php UTF-8、Unicode和BOM问题
2010/05/18 PHP
解析argc argv在php中的应用
2013/06/24 PHP
PHP使用array_merge重新排列数组下标的方法
2015/07/22 PHP
asp.net和php的区别点总结
2019/10/10 PHP
PHP程序员简单的开展服务治理架构操作详解(一)
2020/05/14 PHP
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
javascript oop开发滑动(slide)菜单控件
2010/08/25 Javascript
javascript中apply和call方法的作用及区别说明
2014/02/14 Javascript
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
2014/11/12 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
只需五句话搞定JavaScript作用域(经典)
2016/07/26 Javascript
Vue.Js中的$watch()方法总结
2017/03/23 Javascript
ES6新增的math,Number方法
2017/08/06 Javascript
angular1.x ui-route传参的三种写法小结
2018/08/31 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
JS实现公告上线滚动效果
2021/01/10 Javascript
[00:11]战神迅矛
2019/03/06 DOTA
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
Python struct模块解析
2014/06/12 Python
python实现的登录和操作开心网脚本分享
2014/07/09 Python
Python编程之字符串模板(Template)用法实例分析
2017/07/22 Python
利用python实现在微信群刷屏的方法
2019/02/21 Python
我就是这样学习Python中的列表
2019/06/02 Python
Python 3 实现定义跨模块的全局变量和使用教程
2019/07/07 Python
使用selenium和pyquery爬取京东商品列表过程解析
2019/08/15 Python
Transpose 数组行列转置的限制方式
2020/02/11 Python
解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
2020/07/14 Python
Html5页面点击遮罩层背景关闭遮罩层
2020/11/30 HTML / CSS
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
英国领先的野生鸟类食品供应商:GardenBird
2018/08/09 全球购物
俄罗斯药房连锁店:ASNA
2020/06/20 全球购物
学前班评语大全
2014/05/04 职场文书
2014幼儿园家长工作总结
2014/11/10 职场文书
2014年药房工作总结
2014/11/22 职场文书
使用react+redux实现计数器功能及遇到问题
2021/06/02 Javascript