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的错误信息
Oct 09 PHP
[转帖]PHP世纪万年历
Dec 06 PHP
ThinkPHP 防止表单重复提交的方法
Aug 08 PHP
PHP中的正则表达式函数介绍
Feb 27 PHP
PHP抽象类 介绍
Jun 13 PHP
php全局变量和类配合使用深刻理解
Jun 05 PHP
php实现的树形结构数据存取类实例
Nov 29 PHP
Thinkphp实现自动验证和自动完成
Dec 19 PHP
PHP中实现中文字串截取无乱码的解决方法
May 29 PHP
YII框架模块化处理操作示例
Apr 26 PHP
PHPUnit + Laravel单元测试常用技能
Nov 06 PHP
laravel框架中表单请求类型和CSRF防护实例分析
Nov 23 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调用Linux的命令行执行文件压缩命令
2013/01/27 PHP
PHP使用ob_start生成html页面的方法
2014/11/07 PHP
非常重要的php正则表达式详解
2016/01/04 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
2017/10/17 PHP
jQuery筛选器children()案例详解(图文)
2013/02/17 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
JavaScript运行时库属性一览表
2014/03/14 Javascript
详解Node.js中的事件机制
2016/09/22 Javascript
js中通过getElementsByName访问name集合对象的方法
2016/10/31 Javascript
vue-cli中的babel配置文件.babelrc实例详解
2018/02/22 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
在JavaScript中实现链式调用的实现
2019/12/24 Javascript
vue项目或网页上实现文字转换成语音播放功能
2020/06/09 Javascript
Vue实现随机验证码功能
2020/12/29 Vue.js
python调用机器喇叭发出蜂鸣声(Beep)的方法
2015/03/23 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
2017/04/19 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
2018/06/13 Python
pandas 快速处理 date_time 日期格式方法
2018/11/12 Python
基于Python的微信机器人开发 微信登录和获取好友列表实现解析
2019/08/21 Python
Golang GBK转UTF-8的例子
2019/08/26 Python
Keras中的多分类损失函数用法categorical_crossentropy
2020/06/11 Python
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
Halston Heritage官网:简洁的日装,稍显奢华的晚装
2018/11/20 全球购物
测绘工程专业个人自我评价
2013/12/01 职场文书
事业单位考核材料
2014/05/21 职场文书
2014年维修工作总结
2014/11/22 职场文书
2015年12.4全国法制宣传日活动总结
2015/03/24 职场文书
培训通知书模板
2015/04/17 职场文书
学校青年志愿者活动总结
2015/05/06 职场文书
2015年财务经理工作总结
2015/05/13 职场文书
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js
关于JavaScript轮播图的实现
2021/11/20 Javascript
Python中的嵌套循环详情
2022/03/23 Python
解决Mysql报错 Table 'mysql.user' doesn't exist
2022/05/06 MySQL