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 相关文章推荐
PHP4实际应用经验篇(9)
Oct 09 PHP
一个好用的分页函数
Nov 16 PHP
PHP的开发框架的现状和展望
Mar 16 PHP
PHP 函数学习简单小结
Jul 08 PHP
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
Dec 05 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
Jul 30 PHP
php实现redis数据库指定库号迁移的方法
Jan 14 PHP
注意!PHP 7中不要做的10件事
Sep 18 PHP
yii2局部关闭(开启)csrf的验证的实例代码
Jul 10 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
Feb 08 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
May 02 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缓存技术详细总结
2013/08/07 PHP
php数组保存文本与文本反编成数组实例
2014/11/13 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
2017/04/09 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
用JavaScript实现仿Windows关机效果
2007/03/10 Javascript
java与javascript之间json格式数据互转介绍
2013/10/29 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/06/05 Javascript
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
基于jQuery全屏焦点图左右切换插件responsiveslides
2015/09/07 Javascript
高效的jquery数字滚动特效
2015/12/17 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
2017/02/21 Javascript
ES6新特性六:promise对象实例详解
2017/04/21 Javascript
layui导航栏实现代码
2017/05/19 Javascript
利用webstrom调试Vue.js单页面程序的方法教程
2017/06/06 Javascript
[js高手之路]单例模式实现模态框的示例
2017/09/01 Javascript
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
2017/09/06 NodeJs
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
JavaScript 中的 this 工作原理
2018/06/20 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
2020/06/07 Javascript
用Python实现换行符转换的脚本的教程
2015/04/16 Python
Python数据结构之图的应用示例
2018/05/11 Python
Python判断以什么结尾以什么开头的实例
2018/10/27 Python
Python闭包思想与用法浅析
2018/12/27 Python
Flask框架学习笔记之消息提示与异常处理操作详解
2019/08/15 Python
使用pytorch 筛选出一定范围的值
2020/06/28 Python
python 深度学习中的4种激活函数
2020/09/18 Python
python 爬虫请求模块requests详解
2020/12/04 Python
html5通过postMessage进行跨域通信的方法
2017/12/04 HTML / CSS
比较基础的php面试题及答案-编程题
2012/10/14 面试题
口头翻译求职人自荐信
2013/12/07 职场文书
省三好学生申请材料
2014/01/22 职场文书
离职员工给领导和同事的感谢信
2015/11/03 职场文书
导游词之张家口
2019/12/13 职场文书
java如何实现socket连接方法封装
2021/09/25 Java/Android