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的知识
Nov 17 PHP
php调整gif动画图片尺寸示例代码分享
Dec 05 PHP
linux系统下php安装mbstring扩展的二种方法
Jan 20 PHP
PHP实现数字补零功能的2个函数介绍
May 12 PHP
php运行时动态创建函数的方法
Mar 16 PHP
了解PHP的返回引用和局部静态变量
Jun 04 PHP
java微信开发之上传下载多媒体文件
Jun 24 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
Feb 28 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
Apr 27 PHP
php实现将数据做成json的格式给前端使用
Aug 21 PHP
PHP实现发送微博消息功能完整示例
Dec 04 PHP
php 解析非标准json、非规范json
Apr 01 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打开和关闭文件操作函数总结
2014/11/18 PHP
Yii视图操作之自定义分页实现方法
2016/07/14 PHP
Laravel 5.3 学习笔记之 配置
2016/08/28 PHP
PHP的Trait机制原理与用法分析
2019/10/18 PHP
基于jQuery的动态表格插件
2011/03/28 Javascript
Prototype的Class.create函数解析
2011/09/22 Javascript
JS中令人发指的valueOf方法介绍
2013/02/22 Javascript
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
jQuery中removeClass()方法用法实例
2015/01/05 Javascript
详谈javascript中的cookie
2015/06/03 Javascript
JS+Canvas 实现下雨下雪效果
2016/05/18 Javascript
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
脚本div实现拖放功能(两种)
2017/02/13 Javascript
AngularJS 表单验证手机号的实例(非必填)
2017/11/12 Javascript
浏览器调试动态js脚本的方法(图解)
2018/01/19 Javascript
vue图片上传组件使用详解
2019/12/23 Javascript
查找Vue中下标的操作(some和findindex)
2020/08/12 Javascript
python中 chr unichr ord函数的实例详解
2017/08/06 Python
python中Matplotlib实现绘制3D图的示例代码
2017/09/04 Python
对python字典过滤条件的实例详解
2019/01/22 Python
用python一行代码得到数组中某个元素的个数方法
2019/01/28 Python
Django如何简单快速实现PUT、DELETE方法
2019/07/24 Python
python matplotlib折线图样式实现过程
2019/11/04 Python
实现ECharts双Y轴左右刻度线一致的例子
2020/05/16 Python
CSS3的resize属性使用初探
2015/09/27 HTML / CSS
Watchshop德国:欧洲在线手表No.1
2019/06/20 全球购物
幼儿园门卫岗位职责
2014/02/14 职场文书
俞敏洪励志演讲稿
2014/04/29 职场文书
经销商年会策划方案
2014/05/29 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
学校联谊协议书
2014/09/16 职场文书
综治工作汇报材料
2014/10/27 职场文书
小学教学工作总结2015
2015/05/13 职场文书
离婚代理词范文
2015/05/23 职场文书
十二生肖观后感
2015/06/12 职场文书
担保书怎么写 ?
2019/04/22 职场文书