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 SPL使用方法和他的威力
Nov 12 PHP
php格式化日期和时间格式化示例分享
Feb 24 PHP
php+mysqli实现将数据库中一张表信息打印到表格里的方法
Jan 28 PHP
php生成短域名函数
Mar 23 PHP
支付宝支付开发――当面付条码支付和扫码支付实例
Nov 04 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
Jun 17 PHP
PHP实现防盗链的方法分析
Jul 25 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
PHP crc32()函数讲解
Feb 14 PHP
PHP标准库 (SPL)――Countable用法示例
Jun 05 PHP
一文搞懂PHP中的抽象类和接口
May 25 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
dedecms防止FCK乱格式化你的代码的修改方法
2007/03/17 PHP
php读取文件内容的三种可行方法示例介绍
2014/02/08 PHP
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
2014/05/04 PHP
php数组中删除元素之重新索引的方法
2014/09/16 PHP
PHP获取指定日期是星期几的实现方法
2016/11/30 PHP
js 数组的for循环到底应该怎么写?
2010/05/31 Javascript
基于jquery的跟随屏幕滚动代码
2012/07/24 Javascript
PHP结合jQuery实现红蓝投票功能特效
2015/07/22 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
2015/07/29 Javascript
javascript Slip.js实现整屏滑动的手机网页
2015/11/25 Javascript
jquery点击展示与隐藏更多内容
2016/12/03 Javascript
将鼠标焦点定位到文本框最后(代码分享)
2017/01/11 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
JS实现二维数组横纵列转置的方法
2018/04/17 Javascript
JS中获取 DOM 元素的绝对位置实例详解
2018/04/23 Javascript
vue watch深度监听对象实现数据联动效果
2018/08/16 Javascript
转换layUI的数据表格中的日期格式方法
2019/09/19 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
JavaScript适配器模式原理与用法实例详解
2020/03/09 Javascript
javascript实现拼图游戏
2021/01/29 Javascript
python3.3教程之模拟百度登陆代码分享
2014/01/16 Python
python实现布隆过滤器及原理解析
2019/12/08 Python
Python如何输出整数
2020/06/07 Python
Python正则表达式高级使用方法汇总
2020/06/18 Python
如何利用Python写个坦克大战
2020/11/18 Python
澳大利亚在线消费电子产品商店:TobyDeals
2020/01/05 全球购物
金融行业务员的自我评价
2013/12/13 职场文书
医生进修自我鉴定
2014/01/19 职场文书
2014年班主任自我评价范文
2014/04/23 职场文书
2015年感恩父亲节演讲稿
2015/03/19 职场文书
应急管理工作总结2015
2015/05/04 职场文书
工程款申请报告
2015/05/15 职场文书
小学安全工作总结2015
2015/05/18 职场文书
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
2022/04/06 Vue.js
提高系统的吞吐量解决数据库重复写入问题
2022/04/23 MySQL
浅析JavaScript中的变量提升
2022/06/01 Javascript