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数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
Oct 31 PHP
PHP 中检查或过滤IP地址的实现代码
Nov 27 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
Jun 25 PHP
php开启openssl的方法
May 15 PHP
浅析PHP微信支付通知的处理方式
May 25 PHP
php从数据库查询结果生成树形列表的方法
Apr 17 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
Jul 21 PHP
php将一维数组转换为每3个连续值组成的二维数组
May 06 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
Jul 21 PHP
php判断是否连接上网络的方法实例详解
Dec 14 PHP
详解php用curl调用接口方法,get和post两种方式
Jan 13 PHP
PHP手机号中间四位用星号*代替显示的实例
Jun 02 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 抓取新浪读书频道的小说并生成txt电子书的代码
2009/12/18 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
PHP判断是手机端还是PC端 PHP判断是否是微信浏览器
2017/03/15 PHP
Dom 结点创建 基础知识
2011/10/01 Javascript
Js(JavaScript)中,弹出是或否的选择框示例(confirm用法的实例分析)
2013/07/09 Javascript
按下Enter焦点移至下一个控件的实现js代码
2013/12/11 Javascript
js和css写一个可以自动隐藏的悬浮框
2014/03/05 Javascript
select多选 multiple的使用示例
2014/06/16 Javascript
jQuery通过点击行来删除HTML表格行的实现示例
2014/09/10 Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
2015/09/14 Javascript
Bootstrap每天必学之导航条
2015/11/27 Javascript
轻松学习jQuery插件EasyUI EasyUI表单验证
2015/12/01 Javascript
浅谈jquery的map()和each()方法
2016/06/12 Javascript
JavaScript初学者必看“new”
2017/06/12 Javascript
JQuery元素快速查找与操作
2018/04/22 jQuery
Vuejs开发环境搭建及热更新【推荐】
2018/09/07 Javascript
JavaScript链式调用原理与实现方法详解
2020/05/16 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
[00:32]2018DOTA2亚洲邀请赛VG出场
2018/04/03 DOTA
[02:07]TI9显影之尘系列 - Vici Gaming
2019/08/20 DOTA
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
2019/08/29 Python
python+selenium 点击单选框-radio的实现方法
2019/09/03 Python
python爬虫之遍历单个域名
2019/11/20 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
使用HTML5拍照示例代码
2013/08/06 HTML / CSS
Clarisonic美国官网:科莱丽声波洁面仪
2017/10/12 全球购物
环境科学专业研究生求职信
2013/10/02 职场文书
上课迟到检讨书
2014/01/19 职场文书
搞笑婚礼主持词
2014/03/13 职场文书
经销商订货会主持词
2014/03/27 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
2015年父亲节活动总结
2015/02/12 职场文书
安全教育观后感
2015/06/17 职场文书
2019奶茶店创业计划书范本,值得你借鉴
2019/08/14 职场文书
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis