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 中的面向对象编程:通向大型 PHP 工程的办法
Dec 03 PHP
main.php
Dec 09 PHP
phpfans留言版用到的数据操作类和分页类
Jan 04 PHP
php 执行系统命令的方法
Jul 07 PHP
php xml 入门学习资料
Jan 01 PHP
关于PHP定时发送服务的解决办法
Apr 23 PHP
PHP简单实现正则匹配省市区的方法
Apr 13 PHP
PHP单例模式模拟Java Bean实现方法示例
Dec 07 PHP
PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
Jun 08 PHP
php 多继承的几种常见实现方法示例
Nov 18 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
Dec 13 PHP
ThinkPHP 框架实现的读取excel导入数据库操作示例
Apr 14 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读取xml实例代码
2010/01/28 PHP
mac下使用brew配置环境的步骤分享
2011/05/23 PHP
php图片的二进制转换实现方法
2014/12/15 PHP
Laravel框架实现调用百度翻译API功能示例
2019/05/30 PHP
js左侧多级菜单动态的解决方案
2010/02/01 Javascript
jQuery操作表单常用控件方法小结
2015/03/23 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
整理关于Bootstrap排版的慕课笔记
2017/03/29 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
2017/05/30 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
基于JavaScript实现数码时钟效果
2020/03/30 Javascript
认识less和webstrom的less配置方法
2017/08/02 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
2017/12/25 Javascript
Vue实现PopupWindow组件详解
2018/04/28 Javascript
Angularjs中date过滤器失效的问题及解决方法
2018/07/06 Javascript
jQuery 实现倒计时天,时,分,秒功能
2018/07/31 jQuery
JavaScript this绑定过程深入详解
2018/12/07 Javascript
小程序如何自主实现拦截器的示例代码
2019/11/04 Javascript
Python正则表达式非贪婪、多行匹配功能示例
2017/08/08 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
python 简单照相机调用系统摄像头实现方法 pygame
2018/08/03 Python
对Python3 * 和 ** 运算符详解
2019/02/16 Python
python中with用法讲解
2020/02/07 Python
Pycharm中使用git进行合作开发的教程详解
2020/11/17 Python
2014年圣诞节倒计时网页的制作过程
2014/12/05 HTML / CSS
自荐书模板
2013/12/15 职场文书
开会迟到检讨书
2014/01/08 职场文书
八年级语文教学反思
2014/02/11 职场文书
红领巾心向党演讲稿
2014/09/10 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
2015年爱牙日活动总结
2015/02/05 职场文书
裁员通知
2015/04/25 职场文书
MySQL EXPLAIN输出列的详细解释
2021/05/12 MySQL