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+AJAX实现无刷新注册(带用户名实时检测)
Jan 02 PHP
php 接口类与抽象类的实际作用
Nov 26 PHP
php入门学习知识点七 PHP函数的基本应用
Jul 14 PHP
2014过年倒计时示例
Jan 31 PHP
php生成excel文件的简单方法
Feb 08 PHP
ThinkPHP模板判断输出Defined标签用法详解
Jun 30 PHP
PHP实现格式化文件数据大小显示的方法
Jan 03 PHP
php使用MySQL保存session会话的方法
Jun 18 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
Jun 12 PHP
PHP针对中英文混合字符串长度判断及截取方法示例
Mar 31 PHP
PHP反射基础知识回顾
Sep 10 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
Mar 09 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
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
Yii2 assets清除缓存的方法
2016/05/16 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
2019/07/12 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
Yii实现微信公众号场景二维码的方法实例
2020/08/30 PHP
JSON扫盲帖 JSON.as类教程
2009/02/16 Javascript
jquery中获取select选中值的代码
2011/06/27 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
2013/04/17 Javascript
浅析JavaScript 调试方法和技巧
2015/10/22 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
2015/12/31 Javascript
jQuery+css实现炫目的动态块漂移效果
2016/01/28 Javascript
js仿iphone秒表功能 计算平均数
2017/01/11 Javascript
JS简单判断函数是否存在的方法
2017/02/13 Javascript
js实现3d悬浮效果
2017/02/16 Javascript
mpvue跳转页面及注意事项
2018/08/03 Javascript
JavaScript 自定义html元素鼠标右键菜单功能
2019/12/02 Javascript
[09:37]2018DOTA2国际邀请赛寻真——不懈追梦的Team Serenity
2018/08/13 DOTA
Python简单遍历字典及删除元素的方法
2016/09/18 Python
从零开始学Python第八周:详解网络编程基础(socket)
2016/12/14 Python
对python中的for循环和range内置函数详解
2018/04/17 Python
利用python如何处理nc数据详解
2018/05/23 Python
对matplotlib改变colorbar位置和方向的方法详解
2018/12/13 Python
pytorch 实现tensor与numpy数组转换
2019/12/27 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
Python基于opencv的简单图像轮廓形状识别(全网最简单最少代码)
2021/01/28 Python
基于tensorflow __init__、build 和call的使用小结
2021/02/26 Python
基于Python 函数和方法的区别说明
2021/03/24 Python
2014迎新年晚会策划方案
2014/02/23 职场文书
安康杯竞赛活动总结
2014/05/05 职场文书
书法大赛策划方案
2014/06/04 职场文书
2019新员工心得体会
2019/06/25 职场文书
怎样写好演讲稿题目?
2019/08/21 职场文书
MySQL之DML语言
2021/04/05 MySQL
如何解决.cuda()加载用时很长的问题
2021/05/24 Python
如何自己动手写SQL执行引擎
2021/06/02 MySQL
MySQL和Oracle批量插入SQL的通用写法示例
2021/11/17 MySQL