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 fopen()和 file_get_contents()应用与差异介绍
Mar 19 PHP
使用php批量删除数据库下所有前缀为prefix_的表
Jun 09 PHP
PHP内置过滤器FILTER使用实例
Jun 25 PHP
Zend Framework教程之模型Model基本规则和使用方法
Mar 04 PHP
php getcwd与dirname(__FILE__)区别详解
Sep 24 PHP
PHP在linux上执行外部命令的方法
Feb 06 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
May 02 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
PHPMailer使用QQ邮箱实现邮件发送功能
Aug 18 PHP
关于laravel 子查询 &amp; join的使用
Oct 16 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 闭包特性在实际应用中的问题
2009/10/30 PHP
thinkphp使用phpmailer发送邮件的方法
2014/11/24 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
PHP7 标准库修改
2021/03/09 PHP
基于JavaScript 数据类型之Boolean类型分析介绍
2013/04/19 Javascript
JavaScript动态操作表格实例(添加,删除行,列及单元格)
2013/11/25 Javascript
Jquery下EasyUI组件中的DataGrid结果集清空方法
2014/01/06 Javascript
js unicode 编码解析关于数据转换为中文的两种方法
2014/04/21 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
2016/05/17 Javascript
动态设置form表单的action属性的值的简单方法
2016/05/25 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
2016/11/03 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
vue.js简单配置axios的方法详解
2017/12/13 Javascript
nginx部署访问vue-cli搭建的项目的方法
2018/02/12 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
js实现自定义右键菜单
2020/05/18 Javascript
JS实现简单移动端鼠标拖拽
2020/07/23 Javascript
Jquery 获取相同NAME 或者id删除行操作
2020/08/24 jQuery
[01:08:44]NB vs VP 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python入门教程之if语句的用法
2015/05/14 Python
Python heapq使用详解及实例代码
2017/01/25 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
基于Django集成CAS实现流程详解
2020/11/28 Python
挪威太阳镜和眼镜网上商城:SmartBuyGlasses挪威
2016/08/20 全球购物
德国内衣、泳装和睡衣网上商店:Bigsize Dessous
2018/07/09 全球购物
疾病防治方案
2014/05/31 职场文书
人事主管岗位职责说明书
2014/07/30 职场文书
2015年电工工作总结
2015/04/10 职场文书
行政处罚听证告知书
2015/07/01 职场文书
清明节主题班会
2015/08/14 职场文书
2016年3月份红领巾广播稿
2015/12/21 职场文书
基层医务人员三严三实心得体会
2016/01/05 职场文书
2019年二手房买卖合同范本
2019/10/14 职场文书
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android
JavaScript高级程序设计之基本引用类型
2021/11/17 Javascript