PHP验证码函数代码(简单实用)


Posted in PHP onSeptember 29, 2013

效果图:

PHP验证码函数代码(简单实用)

<?php   
 /** 
 * vCode(m,n,x,y) m个数字  显示大小为n   边宽x   边高y 
 * micxp 
 *3water.com
 */  
session_start();    
vCode(4, 15); //4个数字,显示大小为15  function vCode($num = 4, $size = 20, $width = 0, $height = 0) {   
    !$width && $width = $num * $size * 4 / 5 + 5;   
    !$height && $height = $size + 10;    
    // 去掉了 0 1 O l 等  
    $str = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVW";   
    $code = '';   
    for ($i = 0; $i < $num; $i++) {   
        $code .= $str[mt_rand(0, strlen($str)-1)];   
    }    
    // 画图像  
    $im = imagecreatetruecolor($width, $height);    
    // 定义要用到的颜色  
    $back_color = imagecolorallocate($im, 235, 236, 237);   
    $boer_color = imagecolorallocate($im, 118, 151, 199);   
    $text_color = imagecolorallocate($im, mt_rand(0, 200), mt_rand(0, 120), mt_rand(0, 120));    
    // 画背景  
    imagefilledrectangle($im, 0, 0, $width, $height, $back_color);    
    // 画边框  
    imagerectangle($im, 0, 0, $width-1, $height-1, $boer_color);    
    // 画干扰线  
    for($i = 0;$i < 5;$i++) {   
        $font_color = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));   
        imagearc($im, mt_rand(- $width, $width), mt_rand(- $height, $height), mt_rand(30, $width * 2), mt_rand(20, $height * 2), mt_rand(0, 360), mt_rand(0, 360), $font_color);   
    }    
    // 画干扰点  
    for($i = 0;$i < 50;$i++) {   
        $font_color = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));   
        imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $font_color);   
    }    
    // 画验证码  
    @imagefttext($im, $size , 0, 5, $size + 3, $text_color, 'c:\\WINDOWS\\Fonts\\simsun.ttc', $code);   
    $_SESSION["VerifyCode"]=$code;    
    header("Cache-Control: max-age=1, s-maxage=1, no-cache, must-revalidate");   
    header("Content-type: image/png;charset=gb2312");   
    imagepng($im);   
    imagedestroy($im);   
}  
?>
PHP 相关文章推荐
使用PHP和XSL stylesheets转换XML文档
Oct 09 PHP
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
Apr 18 PHP
php中日期加减法运算实现代码
Dec 08 PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
May 10 PHP
两千行代码的PHP学习笔记汇总
Oct 05 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
Oct 09 PHP
PHP验证码类ValidateCode解析
Jan 07 PHP
php实现微信公众号企业转账功能
Oct 01 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
Apr 15 PHP
PHP生成zip压缩包的常用方法示例
Aug 22 PHP
laravel通过a标签从视图向控制器实现传值
Oct 15 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
Jan 04 PHP
PHP在引号前面添加反斜杠(PHP去除反斜杠)
Sep 28 #PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
Sep 28 #PHP
PHP无限分类(树形类)
Sep 28 #PHP
PHP的PSR规范中文版
Sep 28 #PHP
PHP中time(),date(),mktime()区别介绍
Sep 28 #PHP
php中time()和mktime()方法的区别
Sep 28 #PHP
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
Sep 28 #PHP
You might like
php通过记录IP来防止表单重复提交方法分析
2014/12/16 PHP
PHP stream_context_create()函数的使用示例
2015/05/12 PHP
8个必备的PHP功能开发
2015/10/02 PHP
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
js编码、解码函数介绍及其使用示例
2013/09/05 Javascript
jQuery实现contains方法不区分大小写的方法
2015/02/13 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
2015/12/05 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
基于JavaScript实现类似于百度学术高级检索功能
2016/03/02 Javascript
JavaScript中split与join函数的进阶使用技巧
2016/05/03 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
学习JavaScript图片预加载模块
2016/11/07 Javascript
javascript 秒表计时器实现代码
2017/03/09 Javascript
关于javascript sort()排序你可能忽略的一点理解
2017/07/18 Javascript
nodejs 简单实现动态html的方法
2018/05/12 NodeJs
node实现socket链接与GPRS进行通信的方法
2019/05/20 Javascript
微信小程序实现手势滑动效果
2019/08/26 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
2019/09/20 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
浅谈JS for循环中使用break和continue的区别
2020/07/21 Javascript
[02:17]《辉夜杯》TRG战队巡礼
2015/10/26 DOTA
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
python之信息加密题目详解
2019/06/26 Python
Python 中的 import 机制之实现远程导入模块
2019/10/29 Python
python数据库编程 ODBC方式实现通讯录
2020/03/27 Python
CSS3实现缺角矩形,折角矩形以及缺角边框
2019/12/20 HTML / CSS
HTML5各种头部meta标签的功能(推荐)
2017/03/13 HTML / CSS
Ariat官网:美国马靴和服装品牌
2019/12/16 全球购物
小学教师学期末自我评价
2013/09/25 职场文书
劳资人员岗位职责
2013/12/19 职场文书
搞笑创意广告语
2014/03/17 职场文书
2015年社区工会工作总结
2015/05/26 职场文书
英语投诉信范文
2015/07/03 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书
导游词之镇江-金山寺
2019/10/14 职场文书
在pyCharm中下载第三方库的方法
2021/04/18 Python