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 获取select下拉列表框的值
May 08 PHP
无JS,完全php面向过程数据分页实现代码
Aug 27 PHP
php比较多维数组中值的大小排序实现代码
Sep 08 PHP
php获取当前时间的毫秒数的方法
Jan 26 PHP
PHP函数getenv简介和使用实例
May 12 PHP
php基于Snoopy解析网页html的方法
Jul 09 PHP
PHP实现获取文件后缀名的几种常用方法
Aug 08 PHP
使用PHP实现下载CSS文件中的图片
Dec 06 PHP
深入浅析php中sprintf与printf函数的用法及区别
Jan 08 PHP
浅析Yii2 GridView实现下拉搜索教程
Apr 22 PHP
yii2实现根据时间搜索的方法
May 25 PHP
微信推送功能实现方式图文详解
Jul 12 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 归并排序 数组交集
2011/05/10 PHP
PHP与C#分别格式化文件大小的代码
2011/05/14 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
2013/08/15 PHP
PHP mysql与mysqli事务使用说明 分享
2013/08/17 PHP
php中判断数组相等的方法以及数组运算符介绍
2015/03/30 PHP
利用php做服务器和web前端的界面进行交互
2016/10/31 PHP
php多进程应用场景实例详解
2019/07/22 PHP
详解CSS样式中的 !important * _ 符号
2021/03/09 HTML / CSS
jquery.validate使用攻略 第二部
2010/07/01 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
JavaScript常见的五种数组去重的方式
2016/12/15 Javascript
脚本div实现拖放功能(两种)
2017/02/13 Javascript
jQuery扇形定时器插件pietimer使用方法详解
2017/07/18 jQuery
解决layui前端框架 form表单,table表等内置控件不显示的问题
2018/08/19 Javascript
微信小程序实现随机验证码功能
2018/12/20 Javascript
python实现去除下载电影和电视剧文件名中的多余字符的方法
2014/09/23 Python
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
Python中Django发送带图片和附件的邮件
2017/03/31 Python
numpy添加新的维度:newaxis的方法
2018/08/02 Python
python生成1行四列全2矩阵的方法
2018/08/04 Python
Python字符编码转码之GBK,UTF8互转
2020/02/09 Python
python中pow函数用法及功能说明
2020/12/04 Python
Django用内置方法实现简单搜索功能的方法
2020/12/18 Python
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
丝芙兰中国官方商城:SEPHORA中国
2018/01/10 全球购物
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
大专生自我鉴定范文
2013/10/01 职场文书
大学生自我评价怎样写好
2013/10/23 职场文书
30年同学聚会感言
2014/01/30 职场文书
农村门前三包责任书
2014/07/25 职场文书
个人授权委托书模板
2014/09/14 职场文书
简易离婚协议书(范本)
2014/10/25 职场文书
项目经理岗位职责范本
2015/04/01 职场文书
医药公司采购员岗位职责
2015/04/03 职场文书
八年级作文之一起的走过日子
2019/09/17 职场文书
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers