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代码
Apr 09 PHP
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
Mar 15 PHP
php使用json_encode对变量json编码
Apr 07 PHP
php使用iconv中文截断问题的解决方法
Feb 11 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
Mar 21 PHP
Zend Framework前端控制器用法示例
Dec 11 PHP
删除PHP数组中的重复元素的实现代码
Apr 10 PHP
php获取excel文件数据
Apr 21 PHP
PHP设计模式之模板模式定义与用法详解
Dec 20 PHP
php+redis实现消息队列功能示例
Sep 19 PHP
PHP使用PDO实现mysql防注入功能详解
Dec 20 PHP
YII2框架中actions的作用与使用方法示例
Mar 13 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
论建造顺序的重要性
2020/03/04 星际争霸
PHP页面转UTF-8中文编码乱码的解决办法
2015/10/20 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
javascritp实现input输入框相关限制用法
2007/06/29 Javascript
原生javascript实现图片轮播效果代码
2010/09/03 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
2015/10/19 Javascript
jQuery实现网页顶部固定导航效果代码
2015/12/24 Javascript
浅谈js函数的多种定义方法与区别
2016/11/29 Javascript
jsp 自动编译机制详细介绍
2016/12/01 Javascript
webuploader模态框ueditor显示问题解决方法
2016/12/27 Javascript
Node.js的Mongodb使用实例
2016/12/30 Javascript
jquery将标签元素的高设为屏幕的百分比
2017/04/19 jQuery
浅谈Vuejs中nextTick()异步更新队列源码解析
2017/12/31 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
python实现RSA加密(解密)算法
2016/02/17 Python
python fabric实现远程部署
2017/01/05 Python
PyChar学习教程之自定义文件与代码模板详解
2017/07/17 Python
使用Windows批处理和WMI设置Python的环境变量方法
2019/08/14 Python
Python使用Matlab命令过程解析
2020/06/04 Python
Python系统公网私网流量监控实现流程
2020/11/23 Python
canvas基础之图形验证码的示例
2018/01/02 HTML / CSS
如何找出EMP表里面SALARY第N高的employee
2013/12/05 面试题
如何进行Linux分区优化
2013/02/12 面试题
业务员岗位职责范本
2013/12/15 职场文书
会计专业毕业生自荐信范文
2013/12/20 职场文书
六一儿童节活动策划方案
2014/01/27 职场文书
毕业典礼演讲稿
2014/05/13 职场文书
生产车间标语
2014/06/11 职场文书
2014年志愿者工作总结
2014/11/20 职场文书
法定代表人证明书
2014/11/28 职场文书
python第三方网页解析器 lxml 扩展库与 xpath 的使用方法
2021/04/06 Python
JAVA springCloud项目搭建流程
2022/05/11 Java/Android