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
Discuz 模板引擎的封装类代码
Jul 18 PHP
又一个php 分页类实现代码
Dec 03 PHP
PHP 时间日期操作实战
Aug 26 PHP
PHP中上传多个文件的表单设计例子
Nov 19 PHP
Dwz与thinkphp整合下的数据导出到Excel实例
Dec 04 PHP
php对关联数组循环遍历的实现方法
Mar 13 PHP
学习php设计模式 php实现策略模式(strategy)
Dec 07 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
Jun 09 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
Apr 04 PHP
PHP实现PDO操作mysql存储过程示例
Feb 13 PHP
laravel 框架执行流程与原理简单分析
Feb 01 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 5.0 Pear安装方法
2006/12/06 PHP
yii框架通过控制台命令创建定时任务示例
2014/04/30 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
2016/03/21 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
2009/08/28 Javascript
javascript 学习笔记(八)javascript对象
2011/04/12 Javascript
JavaScript实现select添加option
2015/07/03 Javascript
详解jQuery中的empty、remove和detach
2016/04/11 Javascript
20分钟打造属于你的Bootstrap站点
2016/07/27 Javascript
Angular 输入框实现自定义验证功能
2017/02/19 Javascript
vue中如何让子组件修改父组件数据
2018/06/14 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
详解Typescript里的This的使用方法
2021/01/08 Javascript
Python内置的字符串处理函数整理
2013/01/29 Python
python k-近邻算法实例分享
2014/06/11 Python
Python的Django框架中的数据库配置指南
2015/07/17 Python
Python批量生成特定尺寸图片及图画任意文字的实例
2019/01/30 Python
python中PS 图像调整算法原理之亮度调整
2019/06/28 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
2019/08/02 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
2021/03/02 Python
MAC彩妆英国官网:M·A·C UK
2018/05/30 全球购物
英国最大的正宗复古足球衫制造商和零售商:TOFFS
2018/06/21 全球购物
捷克家电和家具购物网站:OKAY.cz
2020/07/23 全球购物
什么是网络协议
2016/04/07 面试题
办公室主任个人总结
2015/02/28 职场文书
副总经理岗位职责范本
2015/04/08 职场文书
歌舞青春观后感
2015/06/10 职场文书
工作年限证明范本
2015/06/15 职场文书
学生退学证明
2015/06/23 职场文书
聘任书格式及范文
2015/09/21 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书
springboot layui hutool Excel导入的实现
2022/03/31 Java/Android
苹果的回收机器人可以通过拆解iPhone获取大量的金和铜并外公布了环境保护最新进展
2022/04/21 数码科技
Python使用pyecharts控件绘制图表
2022/06/05 Python
PostgreSQL之连接失败的问题及解决
2023/05/08 PostgreSQL