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
mysql_num_rows VS COUNT 效率问题分析
Apr 23 PHP
php设计模式 Visitor 访问者模式
Jun 28 PHP
php验证手机号码(支持归属地查询及编码为UTF8)
Feb 01 PHP
php之Memcache学习笔记
Jun 17 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
Jul 10 PHP
yii实现级联下拉菜单的方法
Jul 31 PHP
PHP实现的比较完善的购物车类
Dec 02 PHP
php使用指定编码导出mysql数据到csv文件的方法
Mar 31 PHP
php PDO异常处理详解
Nov 20 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
Jul 13 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
May 12 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
FCKeditor的安装(PHP)
2007/01/13 PHP
php 在线打包_支持子目录
2008/06/28 PHP
php实现从上传文件创建缩略图的方法
2015/04/02 PHP
微信公众平台开发教程⑥ 微信开发集成类的使用图文详解
2019/04/10 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
JS替换文本域内的回车示例
2014/02/18 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
jQuery网页右侧广告跟随滚动代码分享
2020/04/20 Javascript
jQuery实现产品对比功能附源码下载
2016/08/09 Javascript
深入理解bootstrap框架之入门准备
2016/10/09 Javascript
javascript实现去除HTML标签的方法
2016/12/26 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
Vue2.0 组件传值通讯的示例代码
2017/08/01 Javascript
vue将时间戳转换成自定义时间格式的方法
2018/03/02 Javascript
详解node.js的http模块实例演示
2018/07/12 Javascript
JS实现的自定义map方法示例
2019/05/17 Javascript
微信小程序国际化探索实现(附源码地址)
2020/05/20 Javascript
python数组复制拷贝的实现方法
2015/06/09 Python
python实现的用于搜索文件并进行内容替换的类实例
2015/06/28 Python
使用Python的turtle模块画国旗
2019/09/24 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
python中前缀运算符 *和 **的用法示例详解
2020/05/28 Python
python批量处理多DNS多域名的nslookup解析实现
2020/06/28 Python
英国领先的品牌珠宝和配件供应商:Acotis Jewellery
2018/03/07 全球购物
英国手机壳购买网站:Case Hut
2019/04/11 全球购物
一份全面的PHP面试问题考卷
2012/07/15 面试题
老教师工作总结的自我评价
2013/09/27 职场文书
酒吧副总经理岗位职责
2013/12/10 职场文书
有关打架的检讨书
2014/01/25 职场文书
大学生应聘导游自荐信
2014/06/02 职场文书
另类冲刺标语
2014/06/24 职场文书
小学班主任培训心得体会
2016/01/07 职场文书
2019最新劳动仲裁申请书!
2019/07/08 职场文书
MySQL Threads_running飙升与慢查询的相关问题解决
2021/05/08 MySQL
Vue-Element-Admin集成自己的接口实现登录跳转
2021/06/23 Vue.js