PHP验证码函数代码(简单实用)

 更新时间:2013年09月29日 16:44:27   作者:  
这篇文章主要分享了php中简单的验证码函数实现代码,代码比较短,但效果却不错,喜欢的朋友可以试试
效果图:


复制代码 代码如下:

<?php  
 /**
 * vCode(m,n,x,y) m个数字  显示大小为n   边宽x   边高y
 * micxp
 *jb51.net
 */ 
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);  

?>

相关文章

  • Joomla语言翻译类Jtext用法分析

    Joomla语言翻译类Jtext用法分析

    这篇文章主要介绍了Joomla语言翻译类Jtext用法,结合实例分析了语言翻译类Jtext的基本原理与使用方法,需要的朋友可以参考下
    2016-05-05
  • TP3.2批量上传文件或图片 同名冲突问题的解决方法

    TP3.2批量上传文件或图片 同名冲突问题的解决方法

    这篇文章主要为大家详细介绍了TP3.2批量上传文件或图片,同名冲突问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • php 404错误页面实现代码

    php 404错误页面实现代码

    如果访问您站点的用户由于各种原因暂时出现无法访问页面的错误,如何给他一个友好的答复,并且你也知道发生了这个错误,看看下面这段程序,是用来定制404错误页面和发通知给网管。
    2009-06-06
  • 分享ThinkPHP3.2中关联查询解决思路

    分享ThinkPHP3.2中关联查询解决思路

    这篇文章主要介绍了ThinkPHP3.2中关联查询解决思路的相关资料,需要的朋友可以参考下
    2015-09-09
  • PHP将amr音频文件转换为mp3格式的操作细节

    PHP将amr音频文件转换为mp3格式的操作细节

    本文以centos服务器安装ffmpeg为例,给大家详细介绍PHP将amr音频文件转换为mp3格式的操作细节,感兴趣的朋友跟随小编一起看看吧
    2021-07-07
  • PHP判断是否是微信打开还是浏览器打开的方法

    PHP判断是否是微信打开还是浏览器打开的方法

    今天小编就为大家分享一篇关于PHP判断是否是微信打开还是浏览器打开的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Thinkphp中的volist标签用法简介

    Thinkphp中的volist标签用法简介

    通常volist标签多用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,对此可以直接使用volist标签进行输出
    2014-06-06
  • 数组任意位置插入元素,删除特定元素的实例

    数组任意位置插入元素,删除特定元素的实例

    下面小编就为大家带来一篇数组任意位置插入元素,删除特定元素的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • 利用PHP如何写APP接口详解

    利用PHP如何写APP接口详解

    很多朋友在开发时遇到过这样的问题:后台什么时候提供接口?怎么才提供一个接口,其他接口什么时候给出来?没有接口我们前端怎么能做得了?那学完本篇就可以自己搞个接口来返回固定的死数据来测试了!
    2016-08-08
  • php 输入输出流详解及示例代码

    php 输入输出流详解及示例代码

    本文主要介绍php 输入输出流,这里整理了相关资料及简单示例代码,有需要的小伙伴可以参考下
    2016-08-08

最新评论