一段实用的php验证码函数


Posted in PHP onMay 19, 2016

本文实例为大家分享了几段php验证码函数,都很实用,具体内容如下

代码段一:简单php验证码函数

<?php
 
 function code(){
 
 $im = imagecreatetruecolor(100, 40);
 
 $black = imagecolorallocate($im, 0, 0, 0);
 
 $white = imagecolorallocate($im, 255, 255, 255);
 
 
 
 imagefill($im,0,0,$white);
 
 $strarr=array_merge(range(0,9),range(a,z),range(A,Z));
 
 shuffle($strarr);
 
 $str=join(array_slice($strarr,0,4));
 
 $mm=rand(0,40);
 
 $aaa=rand(0,0);
 
 $bbb=rand(0,255);
 
 $ccc=rand(0,255);
 
 $color1=imagecolorallocate($im,$aaa,$bbb,$ccc);
 
 imagestring($im,5,$mm,10,$str,$color1);
 
 for($i=0;$i<700;$i++){
 
   $aa=rand(0,255);
 
   $bb=rand(0,255);
 
   $cc=rand(0,255);
 
 $color=imagecolorallocate($im,$aa,$bb,$cc);
 
   $a=rand(0,100);
 
   $b=rand(0,40);
 
   imagesetpixel($im,$a,$b,$color);
 
 }
 
 for($t=0;$t<3;$t++){
 
   $a1=rand(0,255);
 
   $b1=rand(0,255);
 
   $c1=rand(0,255);
 
 $color2=imagecolorallocate($im,$a1,$b1,$c1);
 
   $a2=rand(0,100);
 
   $b2=rand(0,40);
 
   $a3=rand(0,100);
 
   $b3=rand(0,40);
 
   imageline($im,$a2,$b2,$b3,$b3,$color2);
 
 }
 
 
 
 header("content-type:image/png");
 
 imagepng($im);
 
 }
 
 code() ;
 
?>

代码段二:php验证码函数

function _code($_code_length = 4, $_width = 75, $_height = 25){
 for($i=0;$i<$_code_length;$i++){
  $_nmsg .= dechex(mt_rand(0,15));
 }
 $_SESSION["code"] = $_nmsg;

 $_img = imagecreatetruecolor($_width, $_height);

 $_white = imagecolorallocate($_img, 250, 250, 250);

 imagefill($_img, 0, 0, $_white);

 $_gray = imagecolorallocate($_img, 196, 196, 196);

 imagerectangle($_img, 0, 0, $_width-1, $_height-1, $_gray);

 for ($i=0; $i < 6; $i++) { 
  $_md_color = imagecolorallocate($_img, mt_rand(200,255), mt_rand(200,255), mt_rand(200,255));
  imageline($_img, mt_rand(0,$_width), mt_rand(0, $_height),mt_rand(0,$_width), mt_rand(0, $_height), $_md_color);
 }

 for ($i=0; $i < 50; $i++) { 
  $_md_color = imagecolorallocate($_img, mt_rand(200,255), mt_rand(200,255), mt_rand(200,255));
  imagestring($_img, 1, mt_rand(1,$_width-5), mt_rand(1, $_height-5), "*", $_md_color);
 }

 for ($i=0; $i < $_code_length ; $i++) { 
  $_md_color = imagecolorallocate($_img, mt_rand(0,102), mt_rand(0,102), mt_rand(0,102));
  imagestring($_img, 5, $i * $_width/$_code_length+ mt_rand(1, 10), mt_rand(1, $_height/2), $_SESSION["code"][$i], $_md_color);
 }

 header("Content-Type:image/png");

 imagepng($_img);

 imagedestroy($_img);
}

代码段三:php图片验证码函数

/*@ captcha()函数的功能:生成验证码
 * @ 可自定义参数:
 * @ $width 图片宽度,默认80
 * @ $high 高度,默认25
 * @ $num 验证码个数,默认4个
 * @ $line_num 随机画线条的个数,默认10
 * @ $snow_num 随机雪花的数量,默认50
 */
function captcha($width=80,$high=25,$num=4,$line_num=10,$snow_num=50){
 header('Content-Type:image/png');
 session_start();
 //生成随机数字+字母
 for($a = 0;$a < $num;$a++){
  $code .= dechex(mt_rand(0, 15));//dechex — 十进制转换为十六进制
 }
 //把生成的验证码保存在SESSION超级全局数组中
 $_SESSION['captcha'] = $code;
 //创建画布
 $img = imagecreatetruecolor($width,$high);
 //填充背景色为白色
 $backcolor = imagecolorallocate($img, '255', '255', '255');
 imagefill($img, '0', '0', $backcolor);
 //添加黑色边框
 $bordercolor = imagecolorallocate($img, 0, 0, 0);
 imagerectangle($img, 0, 0, $width-1, $high-1, $bordercolor);
 //随机画线条
 for($i=0;$i<$line_num;$i++){
  imageline($img, mt_rand(0, $width*0.1), mt_rand(0, $high), mt_rand($width*0.9, $width), mt_rand(0, $high),
  imagecolorallocate($img, mt_rand(150, 255), mt_rand(150, 255), mt_rand(150, 255)));
 }
 //随机打雪花
 for ($i=0;$i<$snow_num;$i++){
  imagechar($img,1, mt_rand(0, $width), mt_rand(0, $high),'*',
  imagecolorallocate($img, mt_rand(200, 255), mt_rand(200, 255), mt_rand(200, 255)));
 }
 //画验证码
 for ($b = 0;$b < strlen($_SESSION['captcha']);$b++){
  imagechar($img,5, $b*$width/$num+mt_rand(5,10), mt_rand(2, $high/2),$_SESSION['captcha'][$b],
  imagecolorallocate($img, mt_rand(10, 150), mt_rand(10, 150), mt_rand(0, 100)));
 }
 ob_clean();//清空输出缓冲区
 imagepng($img);
 imagedestroy($img);
}

以上就是三段参考性较高的php验证码函数,希望对大家学习php程序设计有所帮助。

PHP 相关文章推荐
注册页面之前先验证用户名是否存在的php代码
Jul 14 PHP
解析PHP无限级分类方法及代码
Jun 21 PHP
PHP错误提示的关闭方法详解
Jun 23 PHP
PHP 字符串长度判断效率更高的方法
Mar 02 PHP
Yii分页用法实例详解
Dec 04 PHP
PHP中创建和验证哈希的简单方法实探
Jul 06 PHP
给WordPress中的留言加上楼层号的PHP代码实例
Dec 14 PHP
[原创]php求圆周率的简单实现方法
May 30 PHP
详解php实现页面静态化原理
Jun 21 PHP
php生成二维码不保存服务器还有下载功能的实现代码
Aug 09 PHP
微信小程序发送订阅消息的方法(php 为例)
Oct 30 PHP
Laravel Eloquent分表方法并使用模型关联的实现
Nov 25 PHP
thinkphp3.x中cookie方法的用法分析
May 19 #PHP
thinkphp3.x中display方法及show方法的用法实例
May 19 #PHP
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
May 19 #PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
May 19 #PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
May 19 #PHP
php处理json格式数据经典案例总结
May 19 #PHP
CI框架整合smarty步骤详解
May 19 #PHP
You might like
透析PHP的配置文件php.ini
2006/10/09 PHP
PHP设置头信息及取得返回头信息的方法
2016/01/25 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
2017/02/17 PHP
img onload事件绑定各浏览器均可执行
2012/12/19 Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
jQuery prev ~ siblings选择器使用介绍
2013/08/09 Javascript
将查询条件的input、select清空
2014/01/14 Javascript
浅析JavaScript基本类型与引用类型
2014/05/28 Javascript
js实现简单计算器
2015/11/22 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
2017/04/22 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
vue跨域解决方法
2017/10/15 Javascript
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
详解在vue-test-utils中mock全局对象
2018/11/07 Javascript
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
Python中关键字is与==的区别简述
2014/07/31 Python
python实现端口转发器的方法
2015/03/13 Python
Python自动生产表情包
2017/03/17 Python
Python实现识别手写数字 简易图片存储管理系统
2018/01/29 Python
win7 x64系统中安装Scrapy的方法
2018/11/18 Python
通过python检测字符串的字母
2020/02/18 Python
深入浅析Python 命令行模块 Click
2020/03/11 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
2020/05/28 Python
Scrapy模拟登录赶集网的实现代码
2020/07/07 Python
Melijoe美国官网:法国奢侈童装购物网站
2017/04/19 全球购物
在浏览器端如何得到服务器端响应的XML数据
2012/11/24 面试题
酒店服务实习自我鉴定
2013/09/22 职场文书
运动会广播稿80字
2014/01/23 职场文书
学习十八大报告感言
2014/02/28 职场文书
机械专业毕业生自我鉴定2014
2014/10/04 职场文书
2015年信息宣传工作总结
2015/05/26 职场文书
学校扫黄打非工作总结
2015/10/15 职场文书
使用CSS实现黑白格背景效果
2022/06/01 HTML / CSS