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文件中bom的PHP代码
Mar 13 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
Jul 23 PHP
解析PHP实现下载文件的两种方法
Jul 05 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
Aug 20 PHP
VPS中使用LNMP安装WordPress教程
Dec 28 PHP
php实现html标签闭合检测与修复方法
Jul 09 PHP
PHP的文件操作与算法实现的面试题示例
Aug 10 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
Dec 21 PHP
PHP图形计数器程序显示网站用户浏览量
Jul 20 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
Nov 14 PHP
php封装的page分页类完整实例代码
Feb 01 PHP
Yii redis集合的基本使用教程
Jun 14 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 Socket 编程
2010/04/09 PHP
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
php实现压缩多个CSS与JS文件的方法
2014/11/11 PHP
PHP实现的简单三角形、矩形周长面积计算器分享
2014/11/18 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
2016/12/09 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
js各种验证文本框输入格式(正则表达式)
2010/10/22 Javascript
jquery验证手机号码、邮箱格式是否正确示例代码
2013/07/28 Javascript
JavaScript中匿名、命名函数的性能测试
2014/09/04 Javascript
jQuery实现的网页左侧在线客服效果代码
2015/10/23 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
用JS中split方法实现彩色文字背景效果实例
2016/08/24 Javascript
详解照片瀑布流效果(js,jquery分别实现与知识点总结)
2017/01/01 Javascript
AngularJS入门教程一:路由用法初探
2017/05/27 Javascript
详解vue数据渲染出现闪烁问题
2017/06/29 Javascript
node中Express 动态设置端口的方法
2017/08/04 Javascript
详解JavaScript 新语法之Class 的私有属性与私有方法
2019/04/23 Javascript
了解重排与重绘
2019/05/29 Javascript
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
2020/07/15 Javascript
[00:08]DOTA2勇士令状等级奖励“天外飞星”
2019/05/24 DOTA
Python中利用sorted()函数排序的简单教程
2015/04/27 Python
Python常用的文件及文件路径、目录操作方法汇总介绍
2015/05/21 Python
浅谈Python爬取网页的编码处理
2016/11/04 Python
python 爬虫出现403禁止访问错误详解
2017/03/11 Python
python处理Excel xlrd的简单使用
2017/09/12 Python
Python中文件的写入读取以及附加文字方法
2019/01/23 Python
python自动保存百度盘资源到百度盘中的实例代码
2019/08/26 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
2019/09/24 Python
通过实例学习Python Excel操作
2020/01/06 Python
自我鉴定范文300字
2013/10/01 职场文书
离婚协议书范本
2015/01/26 职场文书
2019年度政务公开考核工作总结模板
2019/11/11 职场文书
多属性、多分类MySQL模式设计
2021/04/05 MySQL
mybatis中注解与xml配置的对应关系和对比分析
2021/08/04 Java/Android
Python爬虫入门案例之爬取二手房源数据
2021/10/16 Python