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作为Shell脚本语言使用
Oct 09 PHP
PHP伪造referer实例代码
Sep 20 PHP
PHP STRING 陷阱原理说明
Jul 24 PHP
第4章 数据处理-php数组的处理-郑阿奇
Jul 04 PHP
php遍历所有文件及文件夹的方法深入解析
Jun 08 PHP
mcrypt启用 加密以及解密过程详细解析
Aug 07 PHP
php获取从百度搜索进入网站的关键词的详细代码
Jan 08 PHP
PHP中执行cmd命令的方法
Oct 11 PHP
thinkphp命名空间用法实例详解
Dec 30 PHP
PHP简单获取及判断提交来源的方法
Apr 22 PHP
PHP 获取 ping 时间的实现方法
Sep 29 PHP
php5.6.x到php7.0.x特性小结
Aug 17 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
从Web查询数据库之PHP与MySQL篇
2009/09/25 PHP
自定义php类(查找/修改)xml文档
2013/03/26 PHP
php去除换行(回车换行)的三种方法
2014/03/26 PHP
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
Symfony实现行为和模板中取得request参数的方法
2016/03/17 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
php intval函数用法总结
2019/04/14 PHP
node.js缺少mysql模块运行报错的解决方法
2016/11/13 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
简单实现js轮播图效果
2017/07/14 Javascript
js实现本地时间同步功能
2017/08/26 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
2017/11/08 Javascript
Vue props 单向数据流的实现
2018/11/06 Javascript
浅谈Vue.js组件(二)
2019/04/09 Javascript
微信小程序页面上下滚动效果
2020/11/18 Javascript
antd 表格列宽自适应方法以及错误处理操作
2020/10/27 Javascript
python时间整形转标准格式的示例分享
2014/02/14 Python
详解Python pygame安装过程笔记
2017/06/05 Python
python opencv旋转图像(保持图像不被裁减)
2018/07/26 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
利用python3 的pygame模块实现塔防游戏
2019/12/30 Python
如何快速理解python的垃圾回收机制
2020/09/01 Python
python 如何快速复制序列
2020/09/07 Python
Keras保存模型并载入模型继续训练的实现
2021/02/20 Python
小学生自我评价范文
2014/01/25 职场文书
电子信息专业自荐书
2014/02/04 职场文书
优秀应届毕业生推荐信
2014/02/18 职场文书
骨干教师培训方案
2014/05/06 职场文书
六一儿童节活动总结
2014/08/27 职场文书
三年级学生评语大全
2014/12/26 职场文书
财务经理岗位职责范本
2015/04/08 职场文书
成品仓库管理员岗位职责
2015/04/09 职场文书
致运动员赞词
2015/07/22 职场文书
通过Python把学姐照片做成拼图游戏
2022/02/15 Python
ant design vue的form表单取值方法
2022/06/01 Vue.js
CSS使用SVG实现动态分布的圆环发散路径动画
2022/12/24 HTML / CSS