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将向Java靠拢
Oct 09 PHP
PHP编程与应用
Oct 09 PHP
PHP中实现中文字符进制转换原理分析
Dec 06 PHP
PHP中is_file不能替代file_exists的理由
Mar 04 PHP
php上传文件常见问题总结
Feb 03 PHP
Yii使用migrate命令执行sql语句的方法
Mar 15 PHP
PHP查询附近的人及其距离的实现方法
May 11 PHP
Yii框架弹出框功能示例
Jan 07 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
Feb 15 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 PHP
php操作redis命令及代码实例大全
Nov 19 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
中东人咖啡哲学
2021/03/03 咖啡文化
Yii使用ajax验证显示错误messagebox的解决方法
2014/12/03 PHP
php表单敏感字符过滤类
2014/12/08 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
2019/10/10 PHP
php设计模式之享元模式分析【星际争霸游戏案例】
2020/03/23 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
jQuery旋转插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
2013/01/16 Javascript
javascript定义变量时有var和没有var的区别探讨
2014/07/21 Javascript
Javascript表单验证要注意的事项
2014/09/29 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
Vue.js报错Failed to resolve filter问题的解决方法
2016/05/25 Javascript
详解IWinter 一个路由转控制器的 Nodejs 库
2017/11/15 NodeJs
详解如何优雅地在React项目中使用Redux
2017/12/28 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
2020/04/28 Javascript
详细分析Node.js 模块系统
2020/06/28 Javascript
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python 模拟登陆的两种实现方法
2017/08/10 Python
浅谈python函数之作用域(python3.5)
2017/10/27 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
Pandas实现DataFrame按行求百分数(比例数)
2019/12/27 Python
Python内置函数locals和globals对比
2020/04/28 Python
如何真正的了解python装饰器
2020/08/14 Python
基于CSS3制作立体效果导航菜单
2016/01/12 HTML / CSS
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
男方父母婚礼答谢词
2014/01/25 职场文书
《雪地里的小画家》教学反思
2014/02/22 职场文书
《一个小村庄的故事》教学反思
2014/04/13 职场文书
社区志愿者培训方案
2014/06/10 职场文书
乡镇组织委员个人整改措施
2014/09/16 职场文书
英语教师个人总结
2015/02/09 职场文书
个人自荐书范文
2015/03/09 职场文书
文明医院的标语集锦!
2019/07/24 职场文书
MySQL 重命名表的操作方法及注意事项
2021/05/21 MySQL
Ruby GDBM操作简介及数据存储原理
2022/04/19 Ruby