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 相关文章推荐
xml在joomla表单中的应用详解分享
Jul 19 PHP
浅谈discuz密码加密的方式
May 22 PHP
php表单敏感字符过滤类
Dec 08 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
Mar 19 PHP
php实现的RSS生成类实例
Apr 23 PHP
PHP里的单例类写法实例
Jun 25 PHP
PHP如何将log信息写入服务器中的log文件
Jul 29 PHP
PHP编写登录验证码功能 附调用方法
May 19 PHP
CI框架使用composer安装的依赖包步骤与方法分析
Nov 21 PHP
thinkPHP框架实现生成条形码的方法示例
Jun 06 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
Jun 12 PHP
php中try catch捕获异常实例详解
Aug 06 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
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
跟我学Laravel之请求与输入
2014/10/15 PHP
php中addslashes函数与sql防注入
2014/11/17 PHP
如何在HTML 中嵌入 PHP 代码
2015/05/13 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
DOM 脚本编程中的兄弟节点
2009/10/31 Javascript
Firefox中autocomplete=&quot;off&quot; 设置不起作用Bug的解决方法
2011/03/25 Javascript
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
2012/11/01 Javascript
javascript解决innerText浏览器兼容问题思路代码
2013/05/17 Javascript
jquery自定义滚动条插件示例分享
2014/02/21 Javascript
Js保留小数点的4种效果实现代码分享
2014/04/12 Javascript
Jquery easyui 实现动态树
2015/11/17 Javascript
详解vue模拟加载更多功能(数据追加)
2017/06/23 Javascript
详谈JS中数组的迭代方法和归并方法
2017/08/11 Javascript
Vue内容分发slot(全面解析)
2017/08/19 Javascript
Vue列表渲染的示例代码
2018/11/01 Javascript
Vue实现数据请求拦截
2019/10/23 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
解决vue单页面应用打包后相对路径、绝对路径相关问题
2020/08/14 Javascript
对python中执行DOS命令的3种方法总结
2018/05/12 Python
Python requests库用法实例详解
2018/08/14 Python
keras导入weights方式
2020/06/12 Python
Pytorch 卷积中的 Input Shape用法
2020/06/29 Python
html5 worker 实例(二) 图片变换效果
2013/06/24 HTML / CSS
英国领先的葡萄酒专家:Majestic Wine
2017/05/30 全球购物
比较基础的php面试题及答案-编程题
2012/10/14 面试题
工程专业毕业生自荐信范文
2013/12/25 职场文书
出国英文推荐信
2014/05/10 职场文书
教师工作失职检讨书
2014/09/18 职场文书
2014年圣诞节寄语
2014/12/08 职场文书
结婚保证书(卖身契)
2015/02/26 职场文书
2015年教学副校长工作总结
2015/07/22 职场文书
浅谈Python中的函数(def)及参数传递操作
2021/05/25 Python
浅谈Python数学建模之固定费用问题
2021/06/23 Python