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 相关文章推荐
ajax 的post方法实例(带循环)
Jul 04 PHP
30 个很棒的PHP开源CMS内容管理系统小结
Oct 14 PHP
apache和php之间协同工作的配置经验分享
Apr 08 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
Jul 05 PHP
PHP获取php,mysql,apche的版本信息示例代码
Jan 16 PHP
smarty模板中拼接字符串的方法
Feb 14 PHP
DEDECMS首页调用图片集里的多张图片
Jun 05 PHP
PHP 根据key 给二维数组分组
Dec 09 PHP
ThinkPHP开发--使用七牛云储存
Sep 14 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
Oct 10 PHP
PHP控制循环操作的时间
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 google或baidu分页代码
2009/11/26 PHP
php中通过数组进行高效随机抽取指定条记录的算法
2013/09/09 PHP
我整理的PHP 7.0主要新特性
2016/01/07 PHP
php 中的closure用法详解
2017/06/12 PHP
utf8的编码算法 转载
2006/12/27 Javascript
javascript demo 基本技巧
2009/12/18 Javascript
JavaScript常用对象的方法和属性小结
2012/01/24 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
探寻JavaScript中this指针指向
2016/04/23 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
浅谈Webpack打包优化技巧
2018/06/12 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
详解js实时获取并显示当前时间的方法
2019/05/10 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
2019/12/04 Javascript
微信小程序如何实现点击图片放大功能
2020/01/21 Javascript
vue 在服务器端直接修改请求的接口地址
2020/12/19 Vue.js
Django查找网站项目根目录和对正则表达式的支持
2015/07/15 Python
Python与Java间Socket通信实例代码
2017/03/06 Python
Python基于分水岭算法解决走迷宫游戏示例
2017/09/26 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
2019/06/27 Python
python实现从wind导入数据
2019/12/03 Python
python 子类调用父类的构造函数实例
2020/03/12 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
2020/03/19 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
2020/06/02 Python
Python创建简单的神经网络实例讲解
2021/01/04 Python
Python中pass语句的作用是什么
2016/06/01 面试题
领导视察欢迎词
2014/01/15 职场文书
应届生自荐信范文
2014/02/21 职场文书
毕业生面试求职信
2014/06/23 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
刑事辩护授权委托书格式
2014/10/13 职场文书
分享mysql的current_timestamp小坑及解决
2021/11/27 MySQL
mysql5.5中文乱码问题解决的有用方法
2022/05/30 MySQL
Android开发手册Chip监听及ChipGroup监听
2022/06/10 Java/Android