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 相关文章推荐
使用Apache的rewrite技术
Jun 22 PHP
无限级别菜单的实现
Oct 09 PHP
php部分常见问题总结
Mar 27 PHP
Zend的AutoLoad机制介绍
Sep 27 PHP
利用php实现禁用IE和火狐的缓存问题
Dec 03 PHP
php 过滤英文标点符号及过滤中文标点符号代码
Jun 12 PHP
php操作csv文件代码实例汇总
Sep 22 PHP
PHP定时任务延缓执行的实现
Oct 08 PHP
使用array_map简单搞定PHP删除文件、删除目录
Oct 29 PHP
thinkphp的URL路由规则与配置实例
Nov 26 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
Apr 09 PHP
laravel 解决后端无法获取到前端Post过来的值问题
Oct 22 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/02/06 PHP
php上传文件,创建递归目录的实例代码
2013/10/18 PHP
php基于Snoopy解析网页html的方法
2015/07/09 PHP
PHP实现websocket通信的方法示例
2018/08/28 PHP
laravel框架数据库配置及操作数据库示例
2019/10/10 PHP
jQuery Ajax之$.get()方法和$.post()方法
2009/10/12 Javascript
javascript 面向对象,实现namespace,class,继承,重载
2009/10/29 Javascript
JS关键字变色实现思路及代码
2013/02/21 Javascript
js读取注册表的键值示例
2013/09/25 Javascript
JavaScript 学习笔记之数据类型
2015/01/14 Javascript
jquery实现表格隔行换色效果
2015/11/19 Javascript
JavaScript:Array类型全面解析
2016/05/19 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
Vue的Class与Style绑定的方法
2017/09/01 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
2017/11/19 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
2018/07/18 Javascript
详解vue2.0模拟后台json数据
2019/05/16 Javascript
js实现双色球效果
2020/08/02 Javascript
[46:00]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第一局
2016/03/03 DOTA
Python 调用VC++的动态链接库(DLL)
2008/09/06 Python
Python构造自定义方法来美化字典结构输出的示例
2016/06/16 Python
Python虚拟环境项目实例
2017/11/20 Python
PyTorch中常用的激活函数的方法示例
2019/08/20 Python
Tensorflow实现将标签变为one-hot形式
2020/05/22 Python
python代码能做成软件吗
2020/07/24 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
技校学生个人职业生涯规划范文
2014/03/03 职场文书
《学棋》教后反思
2014/04/14 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书
小学体育组工作总结
2015/08/13 职场文书
2016学校先进党组织事迹材料
2016/02/29 职场文书
分享15个Webpack实用的插件!!!
2021/03/31 Javascript
php字符串倒叙
2021/04/01 PHP
Nginx+Tomcat负载均衡集群的实现示例
2021/10/24 Servers
浅谈Node的内存泄露问题
2022/05/06 NodeJs